Whamcloud - gitweb
LU-14980 osd: check for locks in osd_trans_start() 22/44822/30
authorAlex Zhuravlev <bzzz@whamcloud.com>
Thu, 2 Sep 2021 15:21:38 +0000 (18:21 +0300)
committerOleg Drokin <green@whamcloud.com>
Mon, 13 Mar 2023 06:11:55 +0000 (06:11 +0000)
since LU-10048 we shouldn't be starting a transaction with
object (osd) locks held.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ia7d1de9351a23f8e0de52f3d5d0948f1e65529e7
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/44822
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/osd-ldiskfs/osd_handler.c

index 89c2d50..a8d3d49 100644 (file)
@@ -1991,6 +1991,10 @@ static int osd_trans_start(const struct lu_env *env, struct dt_device *d,
        oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh != NULL);
        LASSERT(oh->ot_handle == NULL);
+       if (unlikely(ldiskfs_track_declares_assert != 0)) {
+               LASSERT(oti->oti_r_locks == 0);
+               LASSERT(oti->oti_w_locks == 0);
+       }
 
        rc = dt_txn_hook_start(env, d, th);
        if (rc != 0)