From f9c20f472cb9f500a609bee1db68868cf2ac3c13 Mon Sep 17 00:00:00 2001 From: Sergey Cheremencev Date: Mon, 25 Jun 2018 16:28:25 +0300 Subject: [PATCH] LU-11537 osp: avoid nested transaction Don't create and start new transaction in osp_precreate_reserve (osp_sync_force) because it has been already started in mdd_create. New transaction rewrites oti_declare_ops_cred resulting in assert in osd_trans_exec_op: osd_trans_exec_op()) lustre-MDT0000: opcode 3: credits = 0, rollback = 4 osd_trans_exec_op()) ASSERTION( !ldiskfs_track_declares_assert ) failed: ... #2 [ffff88008983f600] panic at ffffffff816a863f #3 [ffff88008983f680] lbug_with_loc at ffffffffc0513854 [libcfs] #4 [ffff88008983f6a0] osd_create at ffffffffc0dfac32 [osd_ldiskfs] #5 [ffff88008983f718] lod_sub_create at ffffffffc101b585 [lod] #6 [ffff88008983f7c0] lod_create at ffffffffc100d6e9 [lod] #7 [ffff88008983f800] mdd_create_object_internal at ffffffffc0ed8888 [mdd] #8 [ffff88008983f838] mdd_create_object at ffffffffc0ec3e05 [mdd] #9 [ffff88008983f8b0] mdd_create at ffffffffc0ecc673 [mdd] Change-Id: Ic2c4589a9a1f640c7a0aa989fc62d81ca08f917f Signed-off-by: Sergey Cheremencev Cray-bug-id: LUS-6098 Reviewed-on: https://es-gerrit.dev.cray.com/153461 Reviewed-by: Alexey Lyashkov Reviewed-by: Alexander Zarochentsev Tested-by: Alexander Lezhoev Reviewed-on: https://review.whamcloud.com/33391 Reviewed-by: Alex Zhuravlev Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/osp/osp_precreate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/osp/osp_precreate.c b/lustre/osp/osp_precreate.c index e9ea3b9..10d77e8 100644 --- a/lustre/osp/osp_precreate.c +++ b/lustre/osp/osp_precreate.c @@ -1474,7 +1474,7 @@ int osp_precreate_reserve(const struct lu_env *env, struct osp_device *d) if (atomic_read(&d->opd_sync_changes) && synced == 0) { /* force local commit to release space */ dt_commit_async(env, d->opd_storage); - osp_sync_force(env, d); + osp_sync_check_for_work(d); synced = 1; } if (atomic_read(&d->opd_sync_rpcs_in_progress)) { -- 1.8.3.1