From: Alex Zhuravlev Date: Thu, 2 Sep 2021 15:21:38 +0000 (+0300) Subject: LU-14980 osd: check for locks in osd_trans_start() X-Git-Tag: 2.15.55~86 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=a5b515fa5c6ad1935ecfa673eb5b08152a327527;p=fs%2Flustre-release.git LU-14980 osd: check for locks in osd_trans_start() since LU-10048 we shouldn't be starting a transaction with object (osd) locks held. Signed-off-by: Alex Zhuravlev Change-Id: Ia7d1de9351a23f8e0de52f3d5d0948f1e65529e7 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/44822 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin Reviewed-by: Mikhail Pershin Reviewed-by: Andreas Dilger --- diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 89c2d50..a8d3d49 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -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)