Whamcloud - gitweb
LU-14780 llite: failed ASSERTION(ldlm_has_layout(lock)) b2_12-next
authorBobi Jam <bobijam@whamcloud.com>
Fri, 4 Jun 2021 03:58:29 +0000 (11:58 +0800)
committerOleg Drokin <green@linuxhacker.ru>
Wed, 14 Sep 2022 02:53:24 +0000 (22:53 -0400)
When setting layout in layout lock, the lock could lost its layout
bits, and we'd try fetch the layout lock again.

Lustre-change: https://review.whamcloud.com/44054
Lustre-commit: 1b166d6dd6a2f39dfe35b60be169b288665d0283

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I10f96e4cb03cfe228d3c1ea1500b1a8d8e4e5e54
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Yingjin Qian <qian@ddn.com>
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
lustre/llite/file.c

index f382e07..340f88b 100644 (file)
@@ -5022,7 +5022,9 @@ static int ll_layout_lock_set(struct lustre_handle *lockh, enum ldlm_mode mode,
 
        lock = ldlm_handle2lock(lockh);
        LASSERT(lock != NULL);
-       LASSERT(ldlm_has_layout(lock));
+
+       if (!ldlm_has_layout(lock))
+               GOTO(out, rc = -EAGAIN);
 
        LDLM_DEBUG(lock, "file "DFID"(%p) being reconfigured",
                   PFID(&lli->lli_fid), inode);