summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2014-10-15 08:50:38 +0800
committerDavid Sterba <dsterba@suse.cz>2014-11-03 18:35:30 +0100
commit9662864435d23ecd4c9f91dd3ab5af2c062ed01f (patch)
tree7d0238f906ea93f35b1cadb6e1863255a00a4a30 /utils.c
parent39893bb15ef39ee2ed254d931faf9c67d6c47e37 (diff)
btrfs-progs: code optimize cmd_scan_dev() use btrfs_register_one_device()
cmd_scan_dev() has it own code to register device (calling ioctl BTRFS_IOC_SCAN_DEV), apparently it could use btrfs_register_one_device(). Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/utils.c b/utils.c
index f10c178b..33f3e2af 100644
--- a/utils.c
+++ b/utils.c
@@ -1239,7 +1239,7 @@ struct pending_dir {
char name[PATH_MAX];
};
-void btrfs_register_one_device(char *fname)
+int btrfs_register_one_device(const char *fname)
{
struct btrfs_ioctl_vol_args args;
int fd;
@@ -1251,17 +1251,19 @@ void btrfs_register_one_device(char *fname)
fprintf(stderr, "failed to open /dev/btrfs-control "
"skipping device registration: %s\n",
strerror(errno));
- return;
+ return -errno;
}
strncpy(args.name, fname, BTRFS_PATH_NAME_MAX);
args.name[BTRFS_PATH_NAME_MAX-1] = 0;
ret = ioctl(fd, BTRFS_IOC_SCAN_DEV, &args);
e = errno;
- if(ret<0){
+ if (ret < 0) {
fprintf(stderr, "ERROR: device scan failed '%s' - %s\n",
fname, strerror(e));
+ ret = -e;
}
close(fd);
+ return ret;
}
int btrfs_device_already_in_root(struct btrfs_root *root, int fd,