diff options
Diffstat (limited to 'fs/dlm/ast.c')
-rw-r--r-- | fs/dlm/ast.c | 3 |
1 files changed, 2 insertions, 1 deletions
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); } |