diff options
author | David Sterba <dsterba@suse.com> | 2016-01-13 17:45:39 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-01-13 17:45:41 +0100 |
commit | 1267c58e58429647454ccd5a41ffdee07ba0dfdc (patch) | |
tree | e590e1806b97a6819772db2b6d904dddb8fa4d12 /utils.c | |
parent | 207884898354f6e0a8fd50b16866abf103f46c27 (diff) | |
download | btrfs-progs-1267c58e58429647454ccd5a41ffdee07ba0dfdc.tar.gz |
btrfs-progs: let test_isdir return the exact error
Return any error from stat, normalize the return value in case the path
is a directory.
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'utils.c')
-rw-r--r-- | utils.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -2799,11 +2799,11 @@ int test_issubvolname(const char *name) } /* - * test if path is a directory - * this function return - * 0-> path exists but it is not a directory - * 1-> path exists and it is a directory - * -1 -> path is unaccessible + * Test if path is a directory + * Returns: + * 0 - path exists but it is not a directory + * 1 - path exists and it is a directory + * < 0 - error */ int test_isdir(const char *path) { @@ -2811,10 +2811,10 @@ int test_isdir(const char *path) int ret; ret = stat(path, &st); - if(ret < 0 ) - return -1; + if (ret < 0) + return -errno; - return S_ISDIR(st.st_mode); + return !!S_ISDIR(st.st_mode); } void units_set_mode(unsigned *units, unsigned mode) |