Whamcloud - gitweb
LU-15163 osd: osd_obj_map_recover() to restart transaction 25/55125/2
authorAlex Zhuravlev <bzzz@whamcloud.com>
Tue, 26 Oct 2021 08:38:50 +0000 (11:38 +0300)
committerOleg Drokin <green@whamcloud.com>
Wed, 29 May 2024 05:01:37 +0000 (05:01 +0000)
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 <bzzz@whamcloud.com>
Change-Id: I6efe5444ddc959b19092bebc6e3c7dc25a29cea1
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55125
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/osd-ldiskfs/osd_compat.c

index 1e70b2d..98fb931 100644 (file)
@@ -1319,6 +1319,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,