diff options
author | Benny Halevy <benny@tonian.com> | 2012-02-16 13:57:17 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-02-17 18:38:53 -0500 |
commit | d24433cdc91c0ed15938d2a6ee9e3e1b00fcfaa3 (patch) | |
tree | 7e8d0b0f71f9cc11bc5ac95694532f1759f30851 /include/linux/nfs4.h | |
parent | 03cfb42025a16dc45195dbdd6d368daaa8367429 (diff) |
nfsd41: implement NFS4_SHARE_WANT_NO_DELEG, NFS4_OPEN_DELEGATE_NONE_EXT, why_no_deleg
Respect client request for not getting a delegation in NFSv4.1
Appropriately return delegation "type" NFS4_OPEN_DELEGATE_NONE_EXT
and WND4_NOT_WANTED reason.
[nfsd41: add missing break when encoding op_why_no_deleg]
Signed-off-by: Benny Halevy <bhalevy@tonian.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'include/linux/nfs4.h')
-rw-r--r-- | include/linux/nfs4.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 32345c2805c0..8cdde4d1fad8 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h | |||
@@ -441,7 +441,20 @@ enum limit_by4 { | |||
441 | enum open_delegation_type4 { | 441 | enum open_delegation_type4 { |
442 | NFS4_OPEN_DELEGATE_NONE = 0, | 442 | NFS4_OPEN_DELEGATE_NONE = 0, |
443 | NFS4_OPEN_DELEGATE_READ = 1, | 443 | NFS4_OPEN_DELEGATE_READ = 1, |
444 | NFS4_OPEN_DELEGATE_WRITE = 2 | 444 | NFS4_OPEN_DELEGATE_WRITE = 2, |
445 | NFS4_OPEN_DELEGATE_NONE_EXT = 3, /* 4.1 */ | ||
446 | }; | ||
447 | |||
448 | enum why_no_delegation4 { /* new to v4.1 */ | ||
449 | WND4_NOT_WANTED = 0, | ||
450 | WND4_CONTENTION = 1, | ||
451 | WND4_RESOURCE = 2, | ||
452 | WND4_NOT_SUPP_FTYPE = 3, | ||
453 | WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, | ||
454 | WND4_NOT_SUPP_UPGRADE = 5, | ||
455 | WND4_NOT_SUPP_DOWNGRADE = 6, | ||
456 | WND4_CANCELLED = 7, | ||
457 | WND4_IS_DIR = 8, | ||
445 | }; | 458 | }; |
446 | 459 | ||
447 | enum lock_type4 { | 460 | enum lock_type4 { |