From: David Sterba Date: Tue, 20 Mar 2018 14:37:08 +0000 (+0100) Subject: btrfs: make success path out of btrfs_init_dev_replace_tgtdev more clear X-Git-Tag: v4.18-rc1~176^2~146 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=6fc4749d25738e1a5e5b02d04a0a60bbae516652;p=linux.git btrfs: make success path out of btrfs_init_dev_replace_tgtdev more clear 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 Signed-off-by: David Sterba --- diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index db4d08c65131..e3ec0eb5789b 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -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, diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 70a87d4fe5fe..a8f8a2e39da6 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2612,6 +2612,12 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path 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);