Skip to content

Commit 803e186

Browse files
Anna SchumakerTrond Myklebust
authored andcommitted
NFS: Don't immediately return directory delegations when disabled
The function nfs_inode_evict_delegation() immediately and synchronously returns a delegation when called. This means we can't call it from nfs4_have_delegation(), since that function could be called under a lock. Instead we should mark the delegation for return and let the state manager handle it for us. Fixes: b6d2a52 ("NFS: Add a module option to disable directory delegations") Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
1 parent 60699ab commit 803e186

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

fs/nfs/delegation.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ static int nfs4_do_check_delegation(struct inode *inode, fmode_t type,
149149
int nfs4_have_delegation(struct inode *inode, fmode_t type, int flags)
150150
{
151151
if (S_ISDIR(inode->i_mode) && !directory_delegations)
152-
nfs_inode_evict_delegation(inode);
152+
nfs4_inode_set_return_delegation_on_close(inode);
153153
return nfs4_do_check_delegation(inode, type, flags, true);
154154
}
155155

0 commit comments

Comments
 (0)