summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sbin/umount/umount.822
-rw-r--r--sbin/umount/umount.c8
2 files changed, 26 insertions, 4 deletions
diff --git a/sbin/umount/umount.8 b/sbin/umount/umount.8
index 234eb8f..d1d02d0 100644
--- a/sbin/umount/umount.8
+++ b/sbin/umount/umount.8
@@ -116,6 +116,28 @@ file system table
.Xr unmount 2 ,
.Xr fstab 5 ,
.Xr mount 8
+.Sh BUGS
+When using union filesystems,
+.Xr umount 8
+cannot always determine the node which is the mountpoint.
+In this case,
+it is necessary to specify the relevant directory to be unmounted
+in the same form as that displayed by
+.Xr mount 8 .
+For example, given a mount entry like this:
+.Bd -literal -offset indent
+<above>/tmpdir on /cdrom (local, user mount)
+.Ed
+.Pp
+then the command:
+.Bd -literal -offset indent
+umount '<above>/tmpdir'
+.Ed
+.Pp
+would unmount
+.Ar /tmpdir
+from the mountpoint
+.Ar /cdrom .
.Sh HISTORY
A
.Nm umount
diff --git a/sbin/umount/umount.c b/sbin/umount/umount.c
index 56660de..9059bab 100644
--- a/sbin/umount/umount.c
+++ b/sbin/umount/umount.c
@@ -128,8 +128,7 @@ main(argc, argv)
errs = umountall();
} else
for (errs = 0; *argv != NULL; ++argv)
- if (umountfs(*argv) == 0)
- errs = 1;
+ errs += umountfs(*argv);
exit(errs);
}
@@ -174,6 +173,7 @@ umountall()
return (0);
}
+/* Returns 1 on failure, 0 on success */
int
umountfs(name)
char *name;
@@ -188,8 +188,8 @@ umountfs(name)
char *delimp, *hostp, *mntpt, rname[MAXPATHLEN];
if (realpath(name, rname) == NULL) {
- warn("%s", rname);
- return (0);
+ /* Continue and let the system call check it... */
+ strcpy(rname, name);
}
name = rname;
OpenPOWER on IntegriCloud