autofs/autofs-5.0.5-fix-submount-shutdown-wait.patch
Ian Kent ab7ff7de49 * Fri Nov 8 2010 Ian Kent <ikent@redhat.com> - 1:5.0.5-32.fc15
- always read file maps mount lookup map read fix.
- fix direct map not updating on reread.
- add external bind method.
- fix add simple bind auth.
- add option to dump configured automount maps.
- wait for master map to be available at start.
2010-11-08 11:59:40 +08:00

44 lines
1.5 KiB
Diff

autofs-5.0.5 - fix submount shutdown wait
From: Ian Kent <raven@themaw.net>
When expiring a mount that has submounts we determine if a submount is
still in use by its state being other than ST_SHUTDOWN. But a submount
that is in the process of exiting could also be in one of the states
ST_SHUTDOWN_PENDING or ST_SHUTDOWN_FORCE, in which case we should also
continue to wait for the submount entry to be removed from the list or
for it to reach another state.
---
lib/master.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lib/master.c b/lib/master.c
index ad3aa77..95bd3fb 100644
--- a/lib/master.c
+++ b/lib/master.c
@@ -905,8 +905,9 @@ int master_notify_submount(struct autofs_point *ap, const char *path, enum state
st_wait_task(this, state, 0);
/*
- * If our submount gets to state ST_SHUTDOWN we need to
- * wait until it goes away or changes to ST_READY.
+ * If our submount gets to state ST_SHUTDOWN, ST_SHUTDOWN_PENDING or
+ * ST_SHUTDOWN_FORCE we need to wait until it goes away or changes
+ * to ST_READY.
*/
mounts_mutex_lock(ap);
st_mutex_lock();
@@ -914,7 +915,9 @@ int master_notify_submount(struct autofs_point *ap, const char *path, enum state
struct timespec t = { 0, 300000000 };
struct timespec r;
- if (this->state != ST_SHUTDOWN) {
+ if (this->state != ST_SHUTDOWN &&
+ this->state != ST_SHUTDOWN_PENDING &&
+ this->state != ST_SHUTDOWN_FORCE) {
ret = 0;
break;
}