summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorSatoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>2014-08-01 11:58:00 +0900
committerDavid Sterba <dsterba@suse.cz>2014-08-22 15:07:04 +0200
commitc2d83207bf964e6c0624ce870a01ac1b13ab165b (patch)
tree709a053bf9a72c423f37ed09dbd122d0476acf51 /utils.c
parent91b33340576e9c59353a89f0edb7b72a5a60ad3f (diff)
btrfs-progs: move test_isdir() to utils.c
Since test_isdir() is a utility function, it's better to move it to utils.c. In addition, "const char *" is more appropriate type as its "path" argument because this argument is not changed in this function. Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Cc: David Sterba <dsterba@suse.cz> Cc: Mike Fleetwood <mike.fleetwood@googlemail.com> Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index d2397e85..6c093666 100644
--- a/utils.c
+++ b/utils.c
@@ -2417,3 +2417,22 @@ int test_issubvolname(const char *name)
return name[0] != '\0' && !strchr(name, '/') &&
strcmp(name, ".") && strcmp(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
+ */
+int test_isdir(const char *path)
+{
+ struct stat st;
+ int ret;
+
+ ret = stat(path, &st);
+ if(ret < 0 )
+ return -1;
+
+ return S_ISDIR(st.st_mode);
+}