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.
34 lines
1.3 KiB
34 lines
1.3 KiB
7 years ago
|
autofs-5.0.9 - amd lookup fix expire of external mounts
|
||
|
|
||
|
From: Ian Kent <raven@themaw.net>
|
||
|
|
||
|
When expiring a submount it's necessary to ensure that any triggers
|
||
|
that may have been mounted over the top of the submount by its parent
|
||
|
are umounted so umount_subtree_mounts() is called with the parent ap.
|
||
|
|
||
|
But this can lead to an out of order umount. So far this hasn't been
|
||
|
a problem but if this happens when expiring an amd mount that refers
|
||
|
to an external mount the amd mount structure can't be found (since
|
||
|
we are looking in the parent ap) and subsequently the external mount
|
||
|
doesn't get checked and umounted.
|
||
|
|
||
|
So restrict the call to umount_subtree_mounts() to umount only offset
|
||
|
mounts by passing is_autofs_fs as 1 always.
|
||
|
---
|
||
|
daemon/automount.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/daemon/automount.c b/daemon/automount.c
|
||
|
index 9d9ba7b..a6a9321 100644
|
||
|
--- a/daemon/automount.c
|
||
|
+++ b/daemon/automount.c
|
||
|
@@ -628,7 +628,7 @@ int umount_multi(struct autofs_point *ap, const char *path, int incl)
|
||
|
* parent may have mounted over top of us.
|
||
|
*/
|
||
|
if (ap->submount)
|
||
|
- left += umount_subtree_mounts(ap->parent, path, is_autofs_fs);
|
||
|
+ left += umount_subtree_mounts(ap->parent, path, 1);
|
||
|
|
||
|
left += umount_subtree_mounts(ap, path, is_autofs_fs);
|
||
|
|