NFSv4: Don't remove the delegation from the super_list more than once
Add a check to ensure that we haven't already removed the delegation from the inode after we take all the relevant locks. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
Родитель
b47e0e478c
Коммит
f9e0cc9c97
|
@ -298,6 +298,10 @@ nfs_detach_delegation_locked(struct nfs_inode *nfsi,
|
|||
return NULL;
|
||||
|
||||
spin_lock(&delegation->lock);
|
||||
if (!delegation->inode) {
|
||||
spin_unlock(&delegation->lock);
|
||||
return NULL;
|
||||
}
|
||||
set_bit(NFS_DELEGATION_RETURNING, &delegation->flags);
|
||||
list_del_rcu(&delegation->super_list);
|
||||
delegation->inode = NULL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче