From 0197ce4041f6777394efda8350bf9b29dfb8274b Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Mon, 1 Feb 2010 14:52:30 +0000 Subject: * Released 2.8.3 * Using --no-canonicalize with umount(8) conflicts with the race fix, sinceit assumes the supplied path is absolute, while the race fix relies on the path being relative to the current directory --- lib/Makefile.am | 2 +- lib/mount_util.c | 25 ++----------------------- 2 files changed, 3 insertions(+), 24 deletions(-) (limited to 'lib') diff --git a/lib/Makefile.am b/lib/Makefile.am index c719cfc..d5ef33b 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -35,7 +35,7 @@ libfuse_la_SOURCES = \ $(iconv_source) \ $(mount_source) -libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:2 \ +libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:3 \ -Wl,--version-script,$(srcdir)/fuse_versionscript libulockmgr_la_SOURCES = ulockmgr.c diff --git a/lib/mount_util.c b/lib/mount_util.c index e18e7a4..33e6697 100644 --- a/lib/mount_util.c +++ b/lib/mount_util.c @@ -190,7 +190,6 @@ static int exec_umount(const char *progname, const char *rel_mnt, int lazy) int status; sigset_t blockmask; sigset_t oldmask; - int legacy = 0; sigemptyset(&blockmask); sigaddset(&blockmask, SIGCHLD); @@ -200,32 +199,16 @@ static int exec_umount(const char *progname, const char *rel_mnt, int lazy) return -1; } -retry_umount: res = fork(); if (res == -1) { fprintf(stderr, "%s: fork: %s\n", progname, strerror(errno)); goto out_restore; } if (res == 0) { - /* - * Hide output, because old versions don't support - * --no-canonicalize - */ - if (!legacy) { - int fd = open("/dev/null", O_RDONLY); - dup2(fd, 1); - dup2(fd, 2); - } - sigprocmask(SIG_SETMASK, &oldmask, NULL); setuid(geteuid()); - if (legacy) { - execl("/bin/umount", "/bin/umount", "-i", rel_mnt, - lazy ? "-l" : NULL, NULL); - } else { - execl("/bin/umount", "/bin/umount", "--no-canonicalize", - "-i", rel_mnt, lazy ? "-l" : NULL, NULL); - } + execl("/bin/umount", "/bin/umount", "-i", rel_mnt, + lazy ? "-l" : NULL, NULL); fprintf(stderr, "%s: failed to execute /bin/umount: %s\n", progname, strerror(errno)); exit(1); @@ -235,10 +218,6 @@ retry_umount: fprintf(stderr, "%s: waitpid: %s\n", progname, strerror(errno)); if (status != 0) { - if (!legacy) { - legacy = 1; - goto retry_umount; - } res = -1; } -- cgit v1.2.3