This is against the aufs3.9 branch. The only change is to remove the use of the GNU-specific error_at_line and the associated error.h, replacing it with BSD's err(), which works with both glibc and musl.
diff --git a/au_util.h b/au_util.h index e453629..1183547 100644 --- a/au_util.h +++ b/au_util.h @@ -20,7 +20,7 @@ #define __AUFS_UTIL_H__ #include <errno.h> -#include <error.h> +#include <err.h> #define AuVersion "aufs-util for aufs3.9 and later" @@ -30,7 +30,7 @@ * __VA_ARGS__ does not help the attribute. */ #define AuFin(fmt, ...) \ - error_at_line(errno, errno, __FILE__, __LINE__, fmt, ##__VA_ARGS__) + err(errno, fmt, ##__VA_ARGS__) #ifdef DEBUG #define MTab "/tmp/mtab" diff --git a/auplink.c b/auplink.c index 0eb143c..53ae6e8 100644 --- a/auplink.c +++ b/auplink.c @@ -37,7 +37,7 @@ static void usage(char *me) int main(int argc, char *argv[]) { - int err, cmd; + int err_, cmd; char *cwd; if (argc != 3) @@ -55,8 +55,8 @@ int main(int argc, char *argv[]) cmd = 0; /* never reach here */ } - err = chdir(argv[1]); - if (err) + err_ = chdir(argv[1]); + if (err_) AuFin("chdir"); cwd = getcwd(NULL, 0); /* glibc */ if (!cwd) diff --git a/br.c b/br.c index f6144dc..4991d8f 100644 --- a/br.c +++ b/br.c @@ -29,15 +29,15 @@ int au_br(union aufs_brinfo **brinfo, int *nbr, char *root) { - int err, fd; + int err_, fd; struct statfs stfs; fd = open(root, O_RDONLY /* | O_PATH */); if (fd < 0) AuFin("%s", root); - err = fstatfs(fd, &stfs); - if (err) + err_ = fstatfs(fd, &stfs); + if (err_) AuFin("internal error, %s", root); if (stfs.f_type != AUFS_SUPER_MAGIC) AuFin("%s is not aufs", root); @@ -50,12 +50,12 @@ int au_br(union aufs_brinfo **brinfo, int *nbr, char *root) if (errno) AuFin("posix_memalign"); - err = ioctl(fd, AUFS_CTL_BRINFO, *brinfo); - if (err) + err_ = ioctl(fd, AUFS_CTL_BRINFO, *brinfo); + if (err_) AuFin("AUFS_CTL_BRINFO"); - err = close(fd); - if (err) + err_ = close(fd); + if (err_) AuFin("internal error, %s", root); return 0; diff --git a/mount.aufs.c b/mount.aufs.c index 2188187..36e8410 100644 --- a/mount.aufs.c +++ b/mount.aufs.c @@ -68,7 +68,7 @@ static void test_opts(char opts[], unsigned char flags[]) static int test_flush(char opts[]) { - int err, i; + int err_, i; regex_t preg; char *p, *o; const char *pat = "^((add|ins|append|prepend|del)[:=]" @@ -88,14 +88,14 @@ static int test_flush(char opts[]) } /* todo: try getsubopt(3)? */ - err = regcomp(&preg, pat, REG_EXTENDED | REG_NOSUB); - if (err) + err_ = regcomp(&preg, pat, REG_EXTENDED | REG_NOSUB); + if (err_) AuFin("regcomp"); p = o; while (i--) { if (!regexec(&preg, p, 0, NULL, 0)) { - err = 1; + err_ = 1; break; } else p += strlen(p) + 1; @@ -103,7 +103,7 @@ static int test_flush(char opts[]) regfree(&preg); free(o); - return err; + return err_; } static void do_mount(char *dev, char *mntpnt, int argc, char *argv[], @@ -148,7 +148,7 @@ static void do_mount(char *dev, char *mntpnt, int argc, char *argv[], int main(int argc, char *argv[]) { - int err, c, status, fd; + int err_, c, status, fd; pid_t pid; unsigned char flags[LastOpt]; struct mntent ent; @@ -195,14 +195,14 @@ int main(int argc, char *argv[]) cur = opendir("."); if (!cur) AuFin("."); - err = chdir(mntpnt); - if (err) + err_ = chdir(mntpnt); + if (err_) AuFin("%s", mntpnt); cwd = getcwd(NULL, 0); /* glibc */ if (!cwd) AuFin("getcwd"); - err = fchdir(dirfd(cur)); - if (err) + err_ = fchdir(dirfd(cur)); + if (err_) AuFin("fchdir"); closedir(cur); /* ignore */ @@ -210,8 +210,8 @@ int main(int argc, char *argv[]) test_opts(opts, flags); if (!flags[Bind] && flags[Update]) { - err = access(MTab, R_OK | W_OK); - if (err) + err_ = access(MTab, R_OK | W_OK); + if (err_) AuFin(MTab); } @@ -222,10 +222,10 @@ int main(int argc, char *argv[]) AuFin("both of remount and bind are specified"); flags[AuFlush] = test_flush(opts); if (flags[AuFlush] /* && !flags[Fake] */) { - err = au_plink(cwd, AuPlink_FLUSH, + err_ = au_plink(cwd, AuPlink_FLUSH, AuPlinkFlag_OPEN | AuPlinkFlag_CLOEXEC, &fd); - if (err) + if (err_) AuFin(NULL); } } @@ -240,27 +240,27 @@ int main(int argc, char *argv[]) if (fd >= 0) close(fd); /* ignore */ - err = waitpid(pid, &status, 0); - if (err < 0) + err_ = waitpid(pid, &status, 0); + if (err_ < 0) AuFin("child process"); - err = !WIFEXITED(status); - if (!err) - err = WEXITSTATUS(status); + err_ = !WIFEXITED(status); + if (!err_) + err_ = WEXITSTATUS(status); - if (!err && !flags[Bind]) { + if (!err_ && !flags[Bind]) { if (flags[Update]) - err = au_update_mtab(cwd, flags[Remount], + err_ = au_update_mtab(cwd, flags[Remount], flags[Verbose]); else if (flags[Verbose]) { /* withoug blocking plink */ - err = au_proc_getmntent(cwd, &ent); - if (!err) + err_ = au_proc_getmntent(cwd, &ent); + if (!err_) au_print_ent(&ent); else AuFin("internal error"); } } - return err; + return err_; } diff --git a/mtab.c b/mtab.c index 279f97b..f6391e8 100644 --- a/mtab.c +++ b/mtab.c @@ -46,53 +46,53 @@ void au_print_ent(struct mntent *ent) static void lock_mtab(char *pid_file) { - int err, i; + int err_, i; for (i = 0; i < 5; i++) { - err = link(pid_file, MTab "~"); - if (!err) + err_ = link(pid_file, MTab "~"); + if (!err_) break; sleep(1); } - if (err) + if (err_) AuFin(MTab "~"); } static void unlock_mtab(void) { - int err; + int err_; - err = rename(MTab "~", MTab); - if (err) + err_ = rename(MTab "~", MTab); + if (err_) AuFin(MTab); } static void append_mtab(FILE *fp, FILE *ofp, struct mntent *ent) { - int err; + int err_; struct mntent *p; while ((p = getmntent(ofp))) { - err = addmntent(fp, p); - if (err) + err_ = addmntent(fp, p); + if (err_) AuFin("addmntent"); } - err = addmntent(fp, ent); - if (err) + err_ = addmntent(fp, ent); + if (err_) AuFin("addmntent"); } /* todo: there are some cases which options are not changed */ static void update_mtab(FILE *fp, char *mntpnt, int do_remount, int do_verbose) { - int err; + int err_; long pos; FILE *ofp; struct mntent ent, *p; - err = au_proc_getmntent(mntpnt, &ent); - if (err) + err_ = au_proc_getmntent(mntpnt, &ent); + if (err_) AuFin("no such mount point"); ofp = setmntent(MTab, "r"); @@ -115,8 +115,8 @@ static void update_mtab(FILE *fp, char *mntpnt, int do_remount, int do_verbose) p = &ent; pos = -1; } - err = addmntent(fp, p); - if (err) + err_ = addmntent(fp, p); + if (err_) AuFin("addmntent"); } if (pos > 0) @@ -135,7 +135,7 @@ static void update_mtab(FILE *fp, char *mntpnt, int do_remount, int do_verbose) int au_update_mtab(char *mntpnt, int do_remount, int do_verbose) { - int err, fd, status, e2; + int err_, fd, status, e2; pid_t pid; ino_t ino; struct stat st; @@ -149,7 +149,7 @@ int au_update_mtab(char *mntpnt, int do_remount, int do_verbose) char pid_file[sizeof(MTab "~.") + 20]; FILE *fp; - err = statfs(MTab, &stfs); + err_ = statfs(MTab, &stfs); if (stfs.f_type == PROC_SUPER_MAGIC) return 0; @@ -158,8 +158,8 @@ int au_update_mtab(char *mntpnt, int do_remount, int do_verbose) S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (fd < 0) AuFin("%s", pid_file); - err = fcntl(fd, F_SETLK, &flock); - if (err) + err_ = fcntl(fd, F_SETLK, &flock); + if (err_) AuFin("%s", pid_file); fp = fdopen(fd, "r+"); if (!fp) @@ -174,19 +174,19 @@ int au_update_mtab(char *mntpnt, int do_remount, int do_verbose) } else if (pid < 0) AuFin("fork"); - err = fstat(fd, &st); - if (err) + err_ = fstat(fd, &st); + if (err_) perror(pid_file); ino = st.st_ino; - err = waitpid(pid, &status, 0); - if (err < 0) { + err_ = waitpid(pid, &status, 0); + if (err_ < 0) { perror(pid_file); goto out; } - err = !WIFEXITED(status); - if (!err) - err = WEXITSTATUS(status); + err_ = !WIFEXITED(status); + if (!err_) + err_ = WEXITSTATUS(status); e2 = unlink(pid_file); if (e2 && errno != ENOENT) @@ -209,5 +209,5 @@ int au_update_mtab(char *mntpnt, int do_remount, int do_verbose) fclose(fp); out: - return err; + return err_; } diff --git a/plink.c b/plink.c index 8649fd7..45f1852 100644 --- a/plink.c +++ b/plink.c @@ -99,17 +99,17 @@ static int ia_append(ino_t ino) static int build_array(char *plink_dir) { - int err; + int err_; DIR *dp; struct dirent *de; char *p; ino_t ino; - err = access(plink_dir, F_OK); - if (err) + err_ = access(plink_dir, F_OK); + if (err_) return 0; - err = 0; + err_ = 0; dp = opendir(plink_dir); if (!dp) AuFin("%s", plink_dir); @@ -123,8 +123,8 @@ static int build_array(char *plink_dir) } #endif - err = na_append(plink_dir, de->d_name); - if (err) + err_ = na_append(plink_dir, de->d_name); + if (err_) break; p = strchr(de->d_name, '.'); @@ -137,13 +137,13 @@ static int build_array(char *plink_dir) ino = strtoull(de->d_name, NULL, 0); if (ino == /*ULLONG_MAX*/-1 && errno == ERANGE) AuFin("internal error, %s", de->d_name); - err = ia_append(ino); - if (err) + err_ = ia_append(ino); + if (err_) break; } closedir(dp); - return err; + return err_; } static int ia_test(ino_t ino) @@ -179,7 +179,7 @@ static int ftw_list(const char *fname, const struct stat *st, int flags, static int ftw_cpup(const char *fname, const struct stat *st, int flags, struct FTW *ftw) { - int err; + int err_; if (!strcmp(fname + ftw->base, AUFS_WH_PLINKDIR)) return FTW_SKIP_SUBTREE; @@ -192,10 +192,10 @@ static int ftw_cpup(const char *fname, const struct stat *st, int flags, if (ia_test(st->st_ino)) { Dpri("%s\n", fname); if (!S_ISLNK(st->st_mode)) - err = chown(fname, -1, -1); + err_ = chown(fname, -1, -1); else - err = lchown(fname, -1, -1); - if (err) + err_ = lchown(fname, -1, -1); + if (err_) AuFin("%s", fname); } @@ -207,7 +207,7 @@ static int ftw_cpup(const char *fname, const struct stat *st, int flags, static int proc_fd = -1; static void au_plink_maint(char *si, int close_on_exec, int *fd) { - int err, oflags; + int err_, oflags; ssize_t ssz; if (si) { @@ -225,8 +225,8 @@ static void au_plink_maint(char *si, int close_on_exec, int *fd) if (ssz != strlen(si)) AuFin("write"); } else { - err = close(proc_fd); - if (err) + err_ = close(proc_fd); + if (err_) AuFin("close"); proc_fd = -1; } @@ -248,12 +248,12 @@ void au_clean_plink(void) static int do_plink(char *cwd, int cmd, int nbr, union aufs_brinfo *brinfo) { - int err, i, l; + int err_, i, l; struct rlimit rlim; __nftw_func_t func; char *p; - err = 0; + err_ = 0; switch (cmd) { case AuPlink_FLUSH: /*FALLTHROUGH*/ @@ -279,8 +279,8 @@ static int do_plink(char *cwd, int cmd, int nbr, union aufs_brinfo *brinfo) AuFin("malloc"); sprintf(p, "%s/%s", brinfo[i].path, AUFS_WH_PLINKDIR); //puts(p); - err = build_array(p); - if (err) + err_ = build_array(p); + if (err_) AuFin("build_array"); free(p); } @@ -294,8 +294,8 @@ static int do_plink(char *cwd, int cmd, int nbr, union aufs_brinfo *brinfo) putchar('\n'); } - err = getrlimit(RLIMIT_NOFILE, &rlim); - if (err) + err_ = getrlimit(RLIMIT_NOFILE, &rlim); + if (err_) AuFin("getrlimit"); nftw(cwd, func, rlim.rlim_cur - 10, FTW_PHYS | FTW_MOUNT | FTW_ACTIONRETVAL); @@ -307,8 +307,8 @@ static int do_plink(char *cwd, int cmd, int nbr, union aufs_brinfo *brinfo) na.cur = na.o; for (i = 0; i < na.nname; i++) { Dpri("%s\n", na.cur); - err = unlink(na.cur); - if (err) + err_ = unlink(na.cur); + if (err_) AuFin("%s", na.cur); na.cur += strlen(na.cur) + 1; } @@ -317,18 +317,18 @@ static int do_plink(char *cwd, int cmd, int nbr, union aufs_brinfo *brinfo) out: free(ia.o); free(na.o); - return err; + return err_; } int au_plink(char cwd[], int cmd, unsigned int flags, int *fd) { - int err, nbr; + int err_, nbr; struct mntent ent; char *p, si[3 + sizeof(unsigned long long) * 2 + 1]; union aufs_brinfo *brinfo; - err = au_proc_getmntent(cwd, &ent); - if (err) + err_ = au_proc_getmntent(cwd, &ent); + if (err_) AuFin("no such mount point"); if (hasmntopt(&ent, "noplink")) goto out; /* success */ @@ -344,17 +344,17 @@ int au_plink(char cwd[], int cmd, unsigned int flags, int *fd) au_plink_maint(si, flags & AuPlinkFlag_CLOEXEC, fd); /* someone else may modify while we were sleeping */ - err = au_proc_getmntent(cwd, &ent); - if (err) + err_ = au_proc_getmntent(cwd, &ent); + if (err_) AuFin("no such mount point"); } - err = au_br(&brinfo, &nbr, cwd); - if (err) + err_ = au_br(&brinfo, &nbr, cwd); + if (err_) AuFin(NULL); - err = do_plink(cwd, cmd, nbr, brinfo); - if (err) + err_ = do_plink(cwd, cmd, nbr, brinfo); + if (err_) AuFin(NULL); free(brinfo); @@ -362,5 +362,5 @@ int au_plink(char cwd[], int cmd, unsigned int flags, int *fd) au_plink_maint(NULL, 0, fd); out: - return err; + return err_; } diff --git a/umount.aufs.c b/umount.aufs.c index 446ba45..ee85637 100644 --- a/umount.aufs.c +++ b/umount.aufs.c @@ -28,7 +28,7 @@ int main(int argc, char *argv[]) { - int err, i, j; + int err_, i, j; struct mntent ent; char *mntpnt, *av[argc + 1]; @@ -39,14 +39,14 @@ int main(int argc, char *argv[]) } mntpnt = argv[1]; - err = au_proc_getmntent(mntpnt, &ent); - if (err) + err_ = au_proc_getmntent(mntpnt, &ent); + if (err_) AuFin("no such mount point"); if (!hasmntopt(&ent, "noplink")) { - err = au_plink(mntpnt, AuPlink_FLUSH, + err_ = au_plink(mntpnt, AuPlink_FLUSH, AuPlinkFlag_OPEN | AuPlinkFlag_CLOEXEC, /*fd*/NULL); - if (err) + if (err_) AuFin(NULL); }
------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds