diff options
author | Benny Halevy <bhalevy@primarydata.com> | 2013-10-29 05:39:12 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-10-29 12:00:48 -0400 |
commit | 956c4fee446c568ad102625da931e259f22c67ee (patch) | |
tree | 5ab6f11336d060e1bbabb4d95f0761d2b7eb90f0 /fs/nfsd | |
parent | 01a87d91fcecced2e2bdcd797794b4ede1f64b77 (diff) |
nfsd4: need to destroy revoked delegations in destroy_client
[use list_splice_init]
Signed-off-by: Benny Halevy <bhalevy@primarydata.com>
[bfields: no need for recall_lock here]
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 5 |
1 files changed, 5 insertions, 0 deletions
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) | |||
1129 | dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); | 1129 | dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); |
1130 | destroy_delegation(dp); | 1130 | destroy_delegation(dp); |
1131 | } | 1131 | } |
1132 | list_splice_init(&clp->cl_revoked, &reaplist); | ||
1133 | while (!list_empty(&reaplist)) { | ||
1134 | dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); | ||
1135 | destroy_revoked_delegation(dp); | ||
1136 | } | ||
1132 | while (!list_empty(&clp->cl_openowners)) { | 1137 | while (!list_empty(&clp->cl_openowners)) { |
1133 | oo = list_entry(clp->cl_openowners.next, struct nfs4_openowner, oo_perclient); | 1138 | oo = list_entry(clp->cl_openowners.next, struct nfs4_openowner, oo_perclient); |
1134 | release_openowner(oo); | 1139 | release_openowner(oo); |