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>
master
David Sterba 2016-01-13 17:45:39 +01:00
parent 2078848983
commit 1267c58e58
1 changed files with 8 additions and 8 deletions

16
utils.c
View File

@ -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)