[PATCH 5/7] fs: errno should be set correctly before the end of functions

Sascha Hauer s.hauer at pengutronix.de
Mon Apr 4 09:09:43 EDT 2011


Otherwise we end up with errno not being set correctly
if a filesystem driver uses the standard open/close/read/write
functions to access its backing store.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 fs/fs.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/fs.c b/fs/fs.c
index 2f61929..f684d45 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -292,8 +292,6 @@ static int path_check_prereq(const char *path, unsigned int flags)
 	struct stat s;
 	unsigned int m;
 
-	errno = 0;
-
 	if (stat(path, &s)) {
 		if (flags & S_UB_DOES_NOT_EXIST)
 			return 0;
@@ -325,6 +323,8 @@ static int path_check_prereq(const char *path, unsigned int flags)
 		errno = -ENOTDIR;
 		goto out;
 	}
+
+	errno = 0;
 out:
 	return errno;
 }
@@ -800,6 +800,7 @@ int mount(const char *device, const char *fsname, const char *_path)
 			e = e->next;
 		e->next = entry;
 	}
+	errno = 0;
 out:
 	free(path);
 	return errno;
-- 
1.7.2.3




More information about the barebox mailing list