Return any error from stat, normalize the return value in case the path
is a directory.
Signed-off-by: David Sterba <dsterba@suse.com>
}
/*
- * 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)
{
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)