btrfs-progs: use function is_block_device() instead
authorAnand Jain <anand.jain@oracle.com>
Mon, 1 Jun 2015 06:25:18 +0000 (14:25 +0800)
committerDavid Sterba <dsterba@suse.cz>
Tue, 2 Jun 2015 15:15:00 +0000 (17:15 +0200)
Here the delete code as below, is trying to check if the provided device
is a block device, there is a function for it. Use it.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-replace.c

index 63d34f9..3a9485f 100644 (file)
@@ -132,14 +132,12 @@ static int cmd_start_replace(int argc, char **argv)
        int i;
        int c;
        int fdmnt = -1;
-       int fdsrcdev = -1;
        int fddstdev = -1;
        char *path;
        char *srcdev;
        char *dstdev = NULL;
        int avoid_reading_from_srcdev = 0;
        int force_using_targetdev = 0;
-       struct stat st;
        u64 dstdev_block_count;
        int do_not_background = 0;
        int mixed = 0;
@@ -252,28 +250,9 @@ static int cmd_start_replace(int argc, char **argv)
                                srcdev, path);
                        goto leave_with_error;
                }
-       } else {
-               fdsrcdev = open(srcdev, O_RDWR);
-               if (fdsrcdev < 0) {
-                       fprintf(stderr, "Error: Unable to open device '%s'\n",
-                               srcdev);
-                       fprintf(stderr, "\tTry using the devid instead of the path\n");
-                       goto leave_with_error;
-               }
-               ret = fstat(fdsrcdev, &st);
-               if (ret) {
-                       fprintf(stderr, "Error: Unable to stat '%s'\n", srcdev);
-                       goto leave_with_error;
-               }
-               if (!S_ISBLK(st.st_mode)) {
-                       fprintf(stderr, "Error: '%s' is not a block device\n",
-                               srcdev);
-                       goto leave_with_error;
-               }
+       } else if (is_block_device(srcdev)) {
                strncpy((char *)start_args.start.srcdev_name, srcdev,
                        BTRFS_DEVICE_PATH_NAME_MAX);
-               close(fdsrcdev);
-               fdsrcdev = -1;
                start_args.start.srcdevid = 0;
        }
 
@@ -346,8 +325,6 @@ leave_with_error:
                free(dstdev);
        if (fdmnt != -1)
                close(fdmnt);
-       if (fdsrcdev != -1)
-               close(fdsrcdev);
        if (fddstdev != -1)
                close(fddstdev);
        return 1;