diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-01 20:10:12 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-09 17:20:03 -0400 |
commit | 216d5d06883edfaf992ada0d72a2a22fdfdbd296 (patch) | |
tree | 4b3ff79736cb09a2bb565383232243971a9a8e2f /fs/nfs/dir.c | |
parent | 0a5ebc148879be68acdb12fbe72b65cb88c410d9 (diff) |
NFSv4: Use NFSv2/v3 rules for negative dentries in nfs_open_revalidate
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 9ca38ab0e0a7..41b063c98822 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -1037,8 +1037,12 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd) | |||
1037 | /* We can't create new files in nfs_open_revalidate(), so we | 1037 | /* We can't create new files in nfs_open_revalidate(), so we |
1038 | * optimize away revalidation of negative dentries. | 1038 | * optimize away revalidation of negative dentries. |
1039 | */ | 1039 | */ |
1040 | if (inode == NULL) | 1040 | if (inode == NULL) { |
1041 | if (!nfs_neg_need_reval(dir, dentry, nd)) | ||
1042 | ret = 1; | ||
1041 | goto out; | 1043 | goto out; |
1044 | } | ||
1045 | |||
1042 | /* NFS only supports OPEN on regular files */ | 1046 | /* NFS only supports OPEN on regular files */ |
1043 | if (!S_ISREG(inode->i_mode)) | 1047 | if (!S_ISREG(inode->i_mode)) |
1044 | goto no_open; | 1048 | goto no_open; |