34 lines
1.1 KiB
Diff
34 lines
1.1 KiB
Diff
am-utils-6.1.5 - handle ENOENT umount return for autofs mounts
|
|
|
|
From: Ian Kent <ikent@redhat.com>
|
|
|
|
An ENOENT return from umount(2) means the kernel path walk couldn't
|
|
resolve the path of the mount to a dentry. In that case there can't
|
|
be an autofs waitq entry waiting for notification, since there's no
|
|
dentry, so don't even try to notify the kernel.
|
|
---
|
|
amd/map.c | 10 ++++++----
|
|
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/amd/map.c b/amd/map.c
|
|
index 8e86b39..e6d14b8 100644
|
|
--- a/amd/map.c
|
|
+++ b/amd/map.c
|
|
@@ -873,10 +873,12 @@ free_map_if_success(int rc, int term, opaque_t arg)
|
|
else
|
|
plog(XLOG_ERROR, "%s: unmount: %s", mp->am_path, strerror(rc));
|
|
#ifdef HAVE_FS_AUTOFS
|
|
- if (mf->mf_flags & MFF_IS_AUTOFS)
|
|
- autofs_get_mp(mp);
|
|
- if (mp->am_flags & AMF_AUTOFS)
|
|
- autofs_umount_failed(mp);
|
|
+ if (rc != ENOENT) {
|
|
+ if (mf->mf_flags & MFF_IS_AUTOFS)
|
|
+ autofs_get_mp(mp);
|
|
+ if (mp->am_flags & AMF_AUTOFS)
|
|
+ autofs_umount_failed(mp);
|
|
+ }
|
|
#endif /* HAVE_FS_AUTOFS */
|
|
amd_stats.d_uerr++;
|
|
} else {
|