btrfs: make success path out of btrfs_init_dev_replace_tgtdev more clear
authorDavid Sterba <dsterba@suse.com>
Tue, 20 Mar 2018 14:37:08 +0000 (15:37 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 28 May 2018 16:07:23 +0000 (18:07 +0200)
This is a preparatory cleanup that will make clear that the only
successful way out of btrfs_init_dev_replace_tgtdev will also set the
device_out to a valid pointer. With this guarantee, the callers can be
simplified.

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

index db4d08c..e3ec0eb 100644 (file)
@@ -358,7 +358,6 @@ int btrfs_dev_replace_start(struct btrfs_fs_info *fs_info,
        dev_replace->cont_reading_from_srcdev_mode = read_src;
        WARN_ON(!src_device);
        dev_replace->srcdev = src_device;
-       WARN_ON(!tgt_device);
        dev_replace->tgtdev = tgt_device;
 
        btrfs_info_in_rcu(fs_info,
index 70a87d4..a8f8a2e 100644 (file)
@@ -2612,6 +2612,12 @@ error:
        return ret;
 }
 
+/*
+ * Initialize a new device for device replace target from a given source dev
+ * and path.
+ *
+ * Return 0 and new device in @device_out, otherwise return < 0
+ */
 int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
                                  const char *device_path,
                                  struct btrfs_device *srcdev,
@@ -2698,7 +2704,7 @@ int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
        mutex_unlock(&fs_info->fs_devices->device_list_mutex);
 
        *device_out = device;
-       return ret;
+       return 0;
 
 error:
        blkdev_put(bdev, FMODE_EXCL);