From 7bf0e557a2b3a463e4d78e81b6ab93987d3dc8af Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Tue, 26 Oct 2021 11:38:50 +0300 Subject: [PATCH] LU-15163 osd: osd_obj_map_recover() to restart transaction osd_obj_map_recover() stops transaction when need to call vfs_link() and it has to start a new transaction to modify filesystem. Signed-off-by: Alex Zhuravlev Change-Id: I6efe5444ddc959b19092bebc6e3c7dc25a29cea1 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/45368 Reviewed-by: Andreas Dilger Reviewed-by: Li Dongyang Reviewed-by: Oleg Drokin Tested-by: jenkins Tested-by: Maloo --- lustre/osd-ldiskfs/osd_compat.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lustre/osd-ldiskfs/osd_compat.c b/lustre/osd-ldiskfs/osd_compat.c index 0ca9fde..a67533e 100644 --- a/lustre/osd-ldiskfs/osd_compat.c +++ b/lustre/osd-ldiskfs/osd_compat.c @@ -1311,6 +1311,14 @@ int osd_obj_map_recover(struct osd_thread_info *info, } if (rc) RETURN(rc); + + jh = osd_journal_start_sb(osd_sb(osd), LDISKFS_HT_MISC, + osd_dto_credits_noquota[DTO_INDEX_DELETE] + + osd_dto_credits_noquota[DTO_INDEX_INSERT] + + osd_dto_credits_noquota[DTO_OBJECT_DELETE]); + if (IS_ERR(jh)) + RETURN(PTR_ERR(jh)); + inode_lock(dir); } bh = osd_ldiskfs_find_entry(src_parent, &src_child->d_name, &de, -- 1.8.3.1