Commit a8b8ab7
nfsd: deal with revoked delegations appropriately
commit 95da1b3a5aded124dd1bda1e3cdb876184813140 upstream.
If a delegation has been revoked by the server, operations using that
delegation should error out with NFS4ERR_DELEG_REVOKED in the >4.1
case, and NFS4ERR_BAD_STATEID otherwise.
The server needs NFSv4.1 clients to explicitly free revoked delegations.
If the server returns NFS4ERR_DELEG_REVOKED, the client will do that;
otherwise it may just forget about the delegation and be unable to
recover when it later sees SEQ4_STATUS_RECALLABLE_STATE_REVOKED set on a
SEQUENCE reply. That can cause the Linux 4.1 client to loop in its
stage manager.
Signed-off-by: Andrew Elble <aweits@rit.edu>
Reviewed-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 2a2d4b4 commit a8b8ab7
1 file changed
Lines changed: 24 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3829 | 3829 | | |
3830 | 3830 | | |
3831 | 3831 | | |
3832 | | - | |
| 3832 | + | |
| 3833 | + | |
3833 | 3834 | | |
3834 | 3835 | | |
3835 | 3836 | | |
| |||
3852 | 3853 | | |
3853 | 3854 | | |
3854 | 3855 | | |
| 3856 | + | |
| 3857 | + | |
| 3858 | + | |
| 3859 | + | |
| 3860 | + | |
| 3861 | + | |
3855 | 3862 | | |
3856 | 3863 | | |
3857 | 3864 | | |
| |||
4696 | 4703 | | |
4697 | 4704 | | |
4698 | 4705 | | |
| 4706 | + | |
| 4707 | + | |
| 4708 | + | |
| 4709 | + | |
| 4710 | + | |
| 4711 | + | |
| 4712 | + | |
| 4713 | + | |
| 4714 | + | |
| 4715 | + | |
4699 | 4716 | | |
4700 | 4717 | | |
4701 | 4718 | | |
| |||
4710 | 4727 | | |
4711 | 4728 | | |
4712 | 4729 | | |
| 4730 | + | |
| 4731 | + | |
| 4732 | + | |
| 4733 | + | |
| 4734 | + | |
| 4735 | + | |
4713 | 4736 | | |
4714 | 4737 | | |
4715 | 4738 | | |
| |||
0 commit comments