mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 03:11:11 -04:00
nfsd: fix GET_DIR_DELEGATION when VFS leases are disabled
When leases are disabled on the server, running xfstest generic/309 leads
to an error because GET_DIR_DELEGATION returns EINVAL.
nfsd_get_dir_deleg() can fail in several ways: like memory allocation and
unable to get a lease because either leases are disable or it's already
held. Currently only the condition "already held" is translated to
returning directory-delegation-is-unavailable error. However, other failure
conditions are likely temporary and thus should result in the same kind
of error.
Fixes: 8b99f6a8c1 ("nfsd: wire up GET_DIR_DELEGATION handling")
Cc: stable@vger.kernel.org
Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
committed by
Chuck Lever
parent
d644a698de
commit
b0bf14546b
@@ -2535,10 +2535,6 @@ nfsd4_get_dir_delegation(struct svc_rqst *rqstp,
|
||||
dd = nfsd_get_dir_deleg(cstate, gdd, nf);
|
||||
nfsd_file_put(nf);
|
||||
if (IS_ERR(dd)) {
|
||||
int err = PTR_ERR(dd);
|
||||
|
||||
if (err != -EAGAIN)
|
||||
return nfserrno(err);
|
||||
gdd->gddrnf_status = GDD4_UNAVAIL;
|
||||
return nfs_ok;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user