|
@@ -3641,7 +3641,14 @@ int write_all_supers(struct btrfs_fs_info *fs_info, int max_mirrors)
|
|
|
u64 flags;
|
|
|
|
|
|
do_barriers = !btrfs_test_opt(fs_info, NOBARRIER);
|
|
|
- backup_super_roots(fs_info);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * max_mirrors == 0 indicates we're from commit_transaction,
|
|
|
+ * not from fsync where the tree roots in fs_info have not
|
|
|
+ * been consistent on disk.
|
|
|
+ */
|
|
|
+ if (max_mirrors == 0)
|
|
|
+ backup_super_roots(fs_info);
|
|
|
|
|
|
sb = fs_info->super_for_commit;
|
|
|
dev_item = &sb->dev_item;
|