You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
48 lines
1.3 KiB
7 years ago
|
autofs-5.1.3 - fix symlink false negative in umount_multi()
|
||
|
|
||
|
From: Ian Kent <raven@themaw.net>
|
||
|
|
||
|
Using is_mounted() on a symlink will give a false negative for MNTS_ALL
|
||
|
since the kernel will return mounted true for a dentry within an autofs
|
||
|
mount point.
|
||
|
|
||
|
Just remove the check and rely on lstat().
|
||
|
|
||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||
|
---
|
||
|
CHANGELOG | 1 +
|
||
|
daemon/automount.c | 5 -----
|
||
|
2 files changed, 1 insertion(+), 5 deletions(-)
|
||
|
|
||
|
--- autofs-5.0.7.orig/CHANGELOG
|
||
|
+++ autofs-5.0.7/CHANGELOG
|
||
|
@@ -270,6 +270,7 @@
|
||
|
- fix cachefs parse message not being logged.
|
||
|
- fix typo in amd_parse.c.
|
||
|
- add missing MODPREFIX to logging in amd parser.
|
||
|
+- fix symlink false negative in umount_multi().
|
||
|
|
||
|
25/07/2012 autofs-5.0.7
|
||
|
=======================
|
||
|
--- autofs-5.0.7.orig/daemon/automount.c
|
||
|
+++ autofs-5.0.7/daemon/automount.c
|
||
|
@@ -640,10 +640,6 @@ int umount_multi(struct autofs_point *ap
|
||
|
|
||
|
debug(ap->logopt, "path %s incl %d", path, incl);
|
||
|
|
||
|
- /* If path is a mount it can't be a symlink */
|
||
|
- if (is_mounted(_PATH_MOUNTED, path, MNTS_ALL))
|
||
|
- goto real_mount;
|
||
|
-
|
||
|
if (lstat(path, &st)) {
|
||
|
warn(ap->logopt,
|
||
|
"failed to stat directory or symlink %s", path);
|
||
|
@@ -688,7 +684,6 @@ int umount_multi(struct autofs_point *ap
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
-real_mount:
|
||
|
is_autofs_fs = 0;
|
||
|
if (master_find_submount(ap, path))
|
||
|
is_autofs_fs = 1;
|