From b3c1416d3e68e8674bb24770b0e7f49db57ce5bd 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. Lustre-commit: 7bf0e557a2b3a463e4d78e81b6ab93987d3dc8af Lustre-change: https://review.whamcloud.com/45368 Signed-off-by: Alex Zhuravlev Change-Id: I6efe5444ddc959b19092bebc6e3c7dc25a29cea1 Reviewed-by: Andreas Dilger Reviewed-by: Li Dongyang Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/55124 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 e9a8f07..892a35e 100644 --- a/lustre/osd-ldiskfs/osd_compat.c +++ b/lustre/osd-ldiskfs/osd_compat.c @@ -1322,6 +1322,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