osl-0.1.2.
[osl.git] / util.h
diff --git a/util.h b/util.h
index 53221c99e6ac7b9fc68cda57ef60b08b4bd28206..70beae4d657c626963935a7c0406bd9a2084443d 100644 (file)
--- a/util.h
+++ b/util.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2009 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -26,7 +26,7 @@ static inline int osl_mkdir(const char *path, mode_t mode)
 {
        if (!mkdir(path, mode))
                return 1;
-       return -E_OSL_MKDIR;
+       return errno == EEXIST? -E_OSL_DIR_EXISTS : -E_OSL_MKDIR;
 }
 
 /**
@@ -50,5 +50,5 @@ _static_inline_ int osl_stat(const char *path, struct stat *buf)
 {
        if (stat(path, buf) >= 0)
                return 1;
-       return -E_OSL_STAT;
+       return errno == ENOENT? -E_OSL_NOENT : -E_OSL_STAT;
 }