summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2015-08-28 22:11:30 +0800
committerDavid Sterba <dsterba@suse.com>2015-10-02 17:54:29 +0200
commit54fdddfdc14fa6e9ddf6960cb22d668d83cdf65e (patch)
treed34a2b250561bb48239b54debce8717efe89ac9a /utils.c
parent5e561cef1d51e6fc6b52460f70b9bca5d4b3ed03 (diff)
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 <anand.jain@oracle.com> Suggested-by: Goffredo Baroncelli <kreijack@inwind.it> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/utils.c b/utils.c
index 32e3375d..f1e32486 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;