Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c876486b authored by Andrew Elble's avatar Andrew Elble Committed by J. Bruce Fields
Browse files

nfsd: fix clp->cl_revoked list deletion causing softlock in nfsd



commit 2d4a532d ("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: 2d4a532d ("nfsd: ensure that clp->cl_revoked list is protected by clp->cl_lock")
Cc: stable@vger.kernel.org
Reported-by: default avatarEric Meddaugh <etmsys@rit.edu>
Tested-by: default avatarEric Meddaugh <etmsys@rit.edu>
Signed-off-by: default avatarAndrew Elble <aweits@rit.edu>
Reviewed-by: default avatarJeff Layton <jeff.layton@primarydata.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent a1d1e9be
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1638,7 +1638,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);
	}