mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
NFSv4: Ensure we honour NFS_DELEGATION_RETURNING in nfs_inode_set_delegation()
Ensure that nfs_inode_set_delegation() doesn't inadvertently detach a delegation that is already in the process of being returned. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
b04b22f4ca
commit
ade04647dd
|
|
@ -370,6 +370,9 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
|
||||||
delegation = NULL;
|
delegation = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
if (test_and_set_bit(NFS_DELEGATION_RETURNING,
|
||||||
|
&old_delegation->flags))
|
||||||
|
goto out;
|
||||||
freeme = nfs_detach_delegation_locked(nfsi,
|
freeme = nfs_detach_delegation_locked(nfsi,
|
||||||
old_delegation, clp);
|
old_delegation, clp);
|
||||||
if (freeme == NULL)
|
if (freeme == NULL)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user