it was highlighted to me is_block_device(), returns 1 if the file is a block device, < 0 in case of an error (eg: file not found) 0 otherwise
This patch makes proper return checks at all the places where is_block_device() is used. Thanks to Goffredo. Signed-off-by: Anand Jain <anand.j...@oracle.com> Suggested-by: Goffredo Baroncelli <kreij...@inwind.it> --- cmds-device.c | 6 +++--- mkfs.c | 6 +++--- utils.c | 7 ++++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/cmds-device.c b/cmds-device.c index eb4358d..e9f17bd 100644 --- a/cmds-device.c +++ b/cmds-device.c @@ -170,7 +170,7 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr) if (is_numerical(argv[i])) { argv3.devid = arg_strtou64(argv[i]); its_num = true; - } else if (is_block_device(argv[i])) { + } else if (is_block_device(argv[i]) == 1) { strncpy_null(argv3.name, argv[i]); } else { fprintf(stderr, @@ -290,7 +290,7 @@ static int cmd_scan_dev(int argc, char **argv) for( i = devstart ; i < argc ; i++ ){ char *path; - if (!is_block_device(argv[i])) { + if (is_block_device(argv[i]) != 1) { fprintf(stderr, "ERROR: %s is not a block device\n", argv[i]); ret = 1; @@ -348,7 +348,7 @@ static int cmd_ready_dev(int argc, char **argv) goto out; } - if (!is_block_device(path)) { + if (is_block_device(path) != 1) { fprintf(stderr, "ERROR: %s is not a block device\n", path); ret = 1; diff --git a/mkfs.c b/mkfs.c index b60fc5a..faef748 100644 --- a/mkfs.c +++ b/mkfs.c @@ -1357,7 +1357,7 @@ int main(int ac, char **av) while (dev_cnt-- > 0) { file = av[optind++]; - if (is_block_device(file)) + if (is_block_device(file) == 1) if (test_dev_for_mkfs(file, force_overwrite)) exit(1); } @@ -1592,7 +1592,7 @@ int main(int ac, char **av) trans = btrfs_start_transaction(root, 1); - if (is_block_device(file)) + if (is_block_device(file) == 1) btrfs_register_one_device(file); if (dev_cnt == 0) @@ -1642,7 +1642,7 @@ int main(int ac, char **av) (unsigned long long)device->devid); } - if (is_block_device(file)) + if (is_block_device(file) == 1) btrfs_register_one_device(file); } diff --git a/utils.c b/utils.c index 39b295a..479b97a 100644 --- a/utils.c +++ b/utils.c @@ -1063,7 +1063,8 @@ int open_path_or_dev_mnt(const char *path, DIR **dirstream) char mp[PATH_MAX]; int fdmnt; - if (is_block_device(path)) { + fdmnt = is_block_device(path); + if (fdmnt == 1) { int ret; ret = get_btrfs_mount(path, mp, sizeof(mp)); @@ -1073,7 +1074,7 @@ int open_path_or_dev_mnt(const char *path, DIR **dirstream) return -1; } fdmnt = open_file_or_dir(mp, dirstream); - } else { + } else if (fdmnt == 0) { fdmnt = open_file_or_dir(path, dirstream); } @@ -2061,7 +2062,7 @@ int get_fs_info(char *path, struct btrfs_ioctl_fs_info_args *fi_args, memset(fi_args, 0, sizeof(*fi_args)); - if (is_block_device(path)) { + if (is_block_device(path) == 1) { struct btrfs_super_block *disk_super; char buf[BTRFS_SUPER_INFO_SIZE]; u64 devid; -- 2.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html