diff options
author | Anand Jain <anand.jain@oracle.com> | 2016-02-13 10:01:37 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-04-28 10:59:13 +0200 |
commit | b3d1b1532ff9620ff5dba891a96f3e912005eb10 (patch) | |
tree | 50ca54581e2527399b16d4b7b6825a99ab5d617b /fs | |
parent | 24fc572fe456c02ff4136c07861a3edd4b8de683 (diff) | |
download | op-kernel-dev-b3d1b1532ff9620ff5dba891a96f3e912005eb10.zip op-kernel-dev-b3d1b1532ff9620ff5dba891a96f3e912005eb10.tar.gz |
btrfs: enhance btrfs_find_device_by_user_input() to check device path
The operation of device replace and device delete follows same steps upto
some depth with in btrfs kernel, however they don't share codes. This
enhancement will help replace and delete to share codes.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/dev-replace.c | 4 | ||||
-rw-r--r-- | fs/btrfs/volumes.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index 7ad8ae9..fdd2880 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -320,10 +320,6 @@ int btrfs_dev_replace_start(struct btrfs_root *root, return -EINVAL; } - if ((args->start.srcdevid == 0 && args->start.srcdev_name[0] == '\0') || - args->start.tgtdev_name[0] == '\0') - return -EINVAL; - /* the disk copy procedure reuses the scrub code */ mutex_lock(&fs_info->volume_mutex); ret = btrfs_find_device_by_user_input(root, args->start.srcdevid, diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 40bbe0a..d742605 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2113,6 +2113,9 @@ int btrfs_find_device_by_user_input(struct btrfs_root *root, u64 srcdevid, if (!*device) ret = -ENOENT; } else { + if (!srcdev_name || !srcdev_name[0]) + return -EINVAL; + ret = btrfs_find_device_missing_or_by_path(root, srcdev_name, device); } |