From: Benny Halevy Date: Tue, 29 Oct 2013 09:39:12 +0000 (+0200) Subject: nfsd4: need to destroy revoked delegations in destroy_client X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=956c4fee446c568ad102625da931e259f22c67ee;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git nfsd4: need to destroy revoked delegations in destroy_client [use list_splice_init] Signed-off-by: Benny Halevy [bfields: no need for recall_lock here] Signed-off-by: J. Bruce Fields --- diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index a90949aefe80..21eb6788cb33 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1129,6 +1129,11 @@ destroy_client(struct nfs4_client *clp) dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); destroy_delegation(dp); } + list_splice_init(&clp->cl_revoked, &reaplist); + while (!list_empty(&reaplist)) { + dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); + destroy_revoked_delegation(dp); + } while (!list_empty(&clp->cl_openowners)) { oo = list_entry(clp->cl_openowners.next, struct nfs4_openowner, oo_perclient); release_openowner(oo);