File 0001-umount.nfs-assume-path-name-is-canonical.patch of Package nfs-utils.33226
From 34c73d82ed02209bd8933da2f1f4761bb464d1d7 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.com>
Date: Tue, 13 Jun 2017 08:39:08 -0400
Subject: [PATCH] umount.nfs: assume path name is canonical.
/usr/bin/umount will always pass a canonical name
to umount.nfs, so it is safe to disable canonicalization.
When umounting an NFS filesystem, it is generally safest to
not "stat" the mountpoint at all as that can block
indefinitely. umount() will not block, but lstat() etc can.
By disabling canonicalization in libmount, we discourage it
from ever calling 'stat' family operations, and thus reduce
the chance of a hang.
Note that to be fully effective, this requires changes to
util-linux which have not yet been accepted.
When both that change and this are in effect, automounters
can use "umount -c $PATH" to safely unmount a filesystem
without blocking.
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mount/mount_libmount.c | 1 +
1 file changed, 1 insertion(+)
--- a/utils/mount/mount_libmount.c
+++ b/utils/mount/mount_libmount.c
@@ -187,6 +187,7 @@ static int umount_main(struct libmnt_con
};
mnt_context_init_helper(cxt, MNT_ACT_UMOUNT, 0);
+ mnt_context_disable_canonicalize(cxt, 1);
while ((c = getopt_long (argc, argv, "fvnrlh", longopts, NULL)) != -1) {