diff options
author | Ming Chen <mchen@cs.stonybrook.edu> | 2014-01-09 22:26:10 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-01-28 00:02:42 +0100 |
commit | ed47b062ce9546fbe1eebf9da6937df4c5035372 (patch) | |
tree | 46f007d5bbe868037232e6431ef794264df56491 /fs/nfsd | |
parent | nfsd4: fix delegation-unlink/rename race (diff) | |
download | linux-ed47b062ce9546fbe1eebf9da6937df4c5035372.tar.xz linux-ed47b062ce9546fbe1eebf9da6937df4c5035372.zip |
nfsd: consider CLAIM_FH when handing out delegation
CLAIM_FH was added by NFSv4.1. It is the same as CLAIM_NULL except that it
uses only current FH to identify the file to be opened.
The NFS client is using CLAIM_FH if the FH is available when opening a file.
Currently, we cannot get any delegation if we stat a file before open it
because the server delegation code does not recognize CLAIM_FH.
We tested this patch and found delegation can be handed out now when claim is
CLAIM_FH.
See http://marc.info/?l=linux-nfs&m=136369847801388&w=2 and
http://www.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues#New_open_claim_types
Signed-off-by: Ming Chen <mchen@cs.stonybrook.edu>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index ed3085b2bf16..d5d070fbeb35 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -3134,6 +3134,7 @@ nfs4_open_delegation(struct net *net, struct svc_fh *fh, goto out_no_deleg; break; case NFS4_OPEN_CLAIM_NULL: + case NFS4_OPEN_CLAIM_FH: /* * Let's not give out any delegations till everyone's * had the chance to reclaim theirs.... |