From 54fdddfdc14fa6e9ddf6960cb22d668d83cdf65e Mon Sep 17 00:00:00 2001 From: Anand Jain Date: Fri, 28 Aug 2015 22:11:30 +0800 Subject: btrfs-progs: fix is_block_device() return checks 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 Suggested-by: Goffredo Baroncelli Signed-off-by: David Sterba --- utils.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'utils.c') diff --git a/utils.c b/utils.c index 32e3375..f1e3248 100644 --- a/utils.c +++ b/utils.c @@ -1086,7 +1086,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)); @@ -1096,7 +1097,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); } @@ -2138,7 +2139,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; -- cgit v1.2.1