summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2026-02-03 23:02:18 +0300
committerDavid Sterba <dsterba@suse.com>2026-04-07 19:55:54 +0300
commit1f3f98e42d82db7aa375371045bfdb632ecba5c2 (patch)
tree17b627e998b98b3c27dc6040de46ddd369f8eaa0
parent8f3fc2d8973af8dc5559ecbbfb5ed3b19b2e8fa5 (diff)
downloadlinux-1f3f98e42d82db7aa375371045bfdb632ecba5c2.tar.xz
btrfs: set written super flag once in write_all_supers()
In case we have multiple devices, there is no point in setting the written flag in the super block on every iteration over the device list. Just do it once before the loop. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/disk-io.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index e4a2673ffeaa..9f4f770c7da6 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -4037,7 +4037,6 @@ int write_all_supers(struct btrfs_trans_handle *trans)
int do_barriers;
int max_errors;
int total_errors = 0;
- u64 flags;
do_barriers = !btrfs_test_opt(fs_info, NOBARRIER);
@@ -4070,6 +4069,8 @@ int write_all_supers(struct btrfs_trans_handle *trans)
}
}
+ btrfs_set_super_flags(sb, btrfs_super_flags(sb) | BTRFS_HEADER_FLAG_WRITTEN);
+
list_for_each_entry(dev, head, dev_list) {
if (unlikely(!dev->bdev)) {
total_errors++;
@@ -4093,9 +4094,6 @@ int write_all_supers(struct btrfs_trans_handle *trans)
memcpy(dev_item->fsid, dev->fs_devices->metadata_uuid,
BTRFS_FSID_SIZE);
- flags = btrfs_super_flags(sb);
- btrfs_set_super_flags(sb, flags | BTRFS_HEADER_FLAG_WRITTEN);
-
ret = btrfs_validate_write_super(fs_info, sb);
if (unlikely(ret < 0)) {
mutex_unlock(&fs_info->fs_devices->device_list_mutex);