dlm: fix missing check in validate_lock_args
authorAlexander Aring <aahringo@redhat.com>
Mon, 4 Apr 2022 20:06:29 +0000 (16:06 -0400)
committerDavid Teigland <teigland@redhat.com>
Wed, 6 Apr 2022 19:01:49 +0000 (14:01 -0500)
This patch adds a additional check if lkb->lkb_wait_count is non zero as
it is done in validate_unlock_args() to check if any operation is in
progress. While on it add a comment taken from validate_unlock_args() to
signal what the check is doing.

There might be no changes because if lkb->lkb_wait_type is non zero
implies that lkb->lkb_wait_count is non zero. However we should add the
check as it does validate_unlock_args().

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lock.c

index bdb51d209ba257e8029c0b1dcaa4c2c4b75cd726..e72f1a063aebca6bfed02b873db62f2680178873 100644 (file)
@@ -2912,7 +2912,8 @@ static int validate_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
                if (lkb->lkb_status != DLM_LKSTS_GRANTED)
                        goto out;
 
-               if (lkb->lkb_wait_type)
+               /* lock not allowed if there's any op in progress */
+               if (lkb->lkb_wait_type || lkb->lkb_wait_count)
                        goto out;
 
                if (is_overlap(lkb))