]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: drop bytenr_orig and fix comment in btrfs_scan_one_device()
authorAnand Jain <anand.jain@oracle.com>
Thu, 16 May 2024 03:10:23 +0000 (11:10 +0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:18 +0000 (15:33 +0200)
Drop the single-use variable bytenr_orig and instead use btrfs_sb_offset()
in the function argument passing.

Fix a stale comment about not automatically fixing a bad primary
superblock from the backup mirror copies. Also, move the comment closer
to where the primary superblock read occurs.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/volumes.c

index c22178b9a51f44ab0f5ca192f8850c3df819f767..d67acd3882b9fd8db7bf6d4a9058f8c64c474b7e 100644 (file)
@@ -1380,19 +1380,12 @@ struct btrfs_device *btrfs_scan_one_device(const char *path, blk_mode_t flags,
        bool new_device_added = false;
        struct btrfs_device *device = NULL;
        struct file *bdev_file;
-       u64 bytenr, bytenr_orig;
+       u64 bytenr;
        dev_t devt;
        int ret;
 
        lockdep_assert_held(&uuid_mutex);
 
-       /*
-        * we would like to check all the supers, but that would make
-        * a btrfs mount succeed after a mkfs from a different FS.
-        * So, we need to add a special mount option to scan for
-        * later supers, using BTRFS_SUPER_MIRROR_MAX instead
-        */
-
        /*
         * Avoid an exclusive open here, as the systemd-udev may initiate the
         * device scan which may race with the user's mount or mkfs command,
@@ -1407,7 +1400,12 @@ struct btrfs_device *btrfs_scan_one_device(const char *path, blk_mode_t flags,
        if (IS_ERR(bdev_file))
                return ERR_CAST(bdev_file);
 
-       bytenr_orig = btrfs_sb_offset(0);
+       /*
+        * We would like to check all the super blocks, but doing so would
+        * allow a mount to succeed after a mkfs from a different filesystem.
+        * Currently, recovery from a bad primary btrfs superblock is done
+        * using the userspace command 'btrfs check --super'.
+        */
        ret = btrfs_sb_log_location_bdev(file_bdev(bdev_file), 0, READ, &bytenr);
        if (ret) {
                device = ERR_PTR(ret);
@@ -1415,7 +1413,7 @@ struct btrfs_device *btrfs_scan_one_device(const char *path, blk_mode_t flags,
        }
 
        disk_super = btrfs_read_disk_super(file_bdev(bdev_file), bytenr,
-                                          bytenr_orig);
+                                          btrfs_sb_offset(0));
        if (IS_ERR(disk_super)) {
                device = ERR_CAST(disk_super);
                goto error_bdev_put;