Re: [PATCH] nfsd: decrease sc_count directly if fail to queue dl_recall

From: cel
Date: Thu Apr 10 2025 - 10:33:58 EST


From: Chuck Lever <chuck.lever@xxxxxxxxxx>

On Thu, 10 Apr 2025 09:57:08 +0800, Li Lingfeng wrote:
> A deadlock warning occurred when invoking nfs4_put_stid following a failed
> dl_recall queue operation:
> T1 T2
> nfs4_laundromat
> nfs4_get_client_reaplist
> nfs4_anylock_blockers
> __break_lease
> spin_lock // ctx->flc_lock
> spin_lock // clp->cl_lock
> nfs4_lockowner_has_blockers
> locks_owner_has_blockers
> spin_lock // flctx->flc_lock
> nfsd_break_deleg_cb
> nfsd_break_one_deleg
> nfs4_put_stid
> refcount_dec_and_lock
> spin_lock // clp->cl_lock
>
> [...]

Applied to nfsd-testing, thanks!

[1/1] nfsd: decrease sc_count directly if fail to queue dl_recall
commit: e8f1e5f463b88ce923eefac447abc2079075f921

--
Chuck Lever