| From: Andrew Elble <aweits@rit.edu> |
| Date: Wed, 25 Feb 2015 13:42:55 -0500 |
| Subject: [PATCH] NFS: fix clp->cl_revoked list deletion causing softlock in |
| nfsd |
| |
| commit 2d4a532d385f ("nfsd: ensure that clp->cl_revoked list is |
| protected by clp->cl_lock") removed the use of the reaplist to |
| clean out clp->cl_revoked. It failed to change list_entry() to |
| walk clp->cl_revoked.next instead of reaplist.next |
| |
| Fixes: 2d4a532d385f ("nfsd: ensure that clp->cl_revoked list is protected by clp->cl_lock") |
| Cc: stable@vger.kernel.org |
| Reported-by: Eric Meddaugh <etmsys@rit.edu> |
| Tested-by: Eric Meddaugh <etmsys@rit.edu> |
| Signed-off-by: Andrew Elble <aweits@rit.edu> |
| |
| fs/nfsd/nfs4state.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c |
| index d66e3ad1de48..5c9c13ee72f9 100644 |
| |
| |
| @@ -1650,7 +1650,7 @@ __destroy_client(struct nfs4_client *clp) |
| nfs4_put_stid(&dp->dl_stid); |
| } |
| while (!list_empty(&clp->cl_revoked)) { |
| - dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru); |
| + dp = list_entry(clp->cl_revoked.next, struct nfs4_delegation, dl_recall_lru); |
| list_del_init(&dp->dl_recall_lru); |
| nfs4_put_stid(&dp->dl_stid); |
| } |
| -- |
| 2.1.0 |
| |