From: Alexander Aring Date: Thu, 17 Nov 2022 22:11:41 +0000 (-0500) Subject: fs: dlm: drop lkb ref in bug case X-Git-Tag: io_uring-6.2-2022-12-19~56^2~17 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=9267c85769e62c10961451fd28e88de996fdf401;p=linux-block.git fs: dlm: drop lkb ref in bug case This patch will drop the lkb reference in an very unlikely case which should in practice not happened. However if it happens we cleanup the reference just in case. Signed-off-by: Alexander Aring Signed-off-by: David Teigland --- diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c index 078bbbd43a53..982d093b80cd 100644 --- a/fs/dlm/ast.c +++ b/fs/dlm/ast.c @@ -186,7 +186,7 @@ void dlm_callback_work(struct work_struct *work) spin_unlock(&lkb->lkb_cb_lock); if (WARN_ON(rv == DLM_DEQUEUE_CALLBACK_EMPTY)) - return; + goto out; for (;;) { castfn = lkb->lkb_astfn; @@ -217,6 +217,7 @@ void dlm_callback_work(struct work_struct *work) spin_unlock(&lkb->lkb_cb_lock); } +out: /* undo kref_get from dlm_add_callback, may cause lkb to be freed */ dlm_put_lkb(lkb); }