From 7d53d2f571da94ec9caf85fb456118ebee85fcf9 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Thu, 11 Jun 2009 23:19:45 +0200 Subject: [PATCH] Kill all remaining users of ERRNO_TO_ERROR(). --- fsck.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/fsck.c b/fsck.c index 68e3107..357fbe7 100644 --- a/fsck.c +++ b/fsck.c @@ -39,7 +39,10 @@ static struct fsck_args_info conf; #define FSCK_ERRORS \ FSCK_ERROR(RANGE_VIOLATION, "range violation detected, very bad"), \ FSCK_ERROR(NOT_A_REGULAR_FILE, "not a regular file"), \ - FSCK_ERROR(SYNTAX, "fsck syntax error"), + FSCK_ERROR(SYNTAX, "fsck syntax error"), \ + FSCK_ERROR(ACCESS, "permission denied"), \ + FSCK_ERROR(CHDIR, "could not change directory"), \ + FSCK_ERROR(OPENDIR, "could not open directory"), #define FSCK_ERROR(num, txt) E_FSCK_ ## num enum { @@ -217,9 +220,9 @@ static int uint32_compare(const struct osl_object *obj1, const struct osl_object */ static inline int __fchdir(int fd) { - if (fchdir(fd) < 0) - return -ERRNO_TO_ERROR(errno); - return 1; + if (fchdir(fd) >= 0) + return 1; + return errno == EACCES? -E_FSCK_ACCESS : -E_FSCK_CHDIR; } /** @@ -233,7 +236,7 @@ _static_inline_ int __chdir(const char *path) { if (chdir(path) >= 0) return 1; - return -ERRNO_TO_ERROR(errno); + return errno == EACCES? -E_FSCK_ACCESS : -E_FSCK_CHDIR; } /** @@ -276,7 +279,7 @@ static int fsck_opendir(const char *dirname, DIR **dir, int *cwd) *dir = opendir("."); if (*dir) return 1; - ret = -ERRNO_TO_ERROR(errno); + ret = errno == EACCES? -E_FSCK_ACCESS : -E_FSCK_OPENDIR; /* Ignore return value of fchdir() and close(). We're busted anyway. */ if (cwd) fchdir(*cwd); @@ -310,7 +313,7 @@ static int for_each_file_in_dir(const char *dirname, int cwd_fd, ret2, ret = fsck_opendir(dirname, &dir, &cwd_fd); if (ret < 0) - return ret == -ERRNO_TO_ERROR(EACCES)? 1 : ret; + return ret == -E_FSCK_ACCESS? 1 : ret; /* scan cwd recursively */ while ((entry = readdir(dir))) { mode_t m; -- 2.39.2