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