From 1f3f98e42d82db7aa375371045bfdb632ecba5c2 Mon Sep 17 00:00:00 2001 From: Filipe Manana Date: Tue, 3 Feb 2026 20:02:18 +0000 Subject: [PATCH] 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 Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba --- fs/btrfs/disk-io.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index e4a2673ffeaa6..9f4f770c7da61 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); -- 2.47.3