X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fllite%2Fdcache.c;h=c42e89daf752fdeb7236c90a12a514ec86286017;hp=22861ca8d334399a63f9f22e3c349677321bf728;hb=9573911bfb4a2c3d7e2047c9d5f5440d9c7e7db5;hpb=81eea4b470a6ff45478f92659389ad8cb0277415 diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c index 22861ca..c42e89d 100644 --- a/lustre/llite/dcache.c +++ b/lustre/llite/dcache.c @@ -328,12 +328,12 @@ static int ll_revalidate_dentry(struct dentry *dentry, return 1; /* - * if open&create is set, talk to MDS to make sure file is created if - * necessary, because we can't do this in ->open() later since that's - * called on an inode. return 0 here to let lookup to handle this. + * VFS warns us that this is the second go around and previous + * operation failed (most likely open|creat), so this time + * we better talk to the server via the lookup path by name, + * not by fid. */ - if ((lookup_flags & (LOOKUP_OPEN | LOOKUP_CREATE)) == - (LOOKUP_OPEN | LOOKUP_CREATE)) + if (lookup_flags & LOOKUP_REVAL) return 0; if (!dentry_may_statahead(dir, dentry))