From 67944412247173c65b14e7eaeb20b961241e1bd5 Mon Sep 17 00:00:00 2001
From: William Hubbs <w.d.hubbs@gmail.com>
Date: Sat, 16 Feb 2013 12:53:31 -0600
Subject: Make fuser command time out

This avoids situations in which fuser hangs because of open files on
remote file systems when the remote system goes down.
I have also passed this bug on to the maintainers of psmisc since it
should really be fixed in fuser.
This is based on a patch submitted by evermind@tuxfamily.org

Reported-by: evermind@tuxfamily.org
X-Gentoo-Bug: 455458
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=455458
---
 sh/rc-mount.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'sh')

diff --git a/sh/rc-mount.sh b/sh/rc-mount.sh
index 2bb14504..454f9f92 100644
--- a/sh/rc-mount.sh
+++ b/sh/rc-mount.sh
@@ -41,7 +41,8 @@ do_unmount()
 		retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1
 		while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
 			if type fuser >/dev/null 2>&1; then
-				pids="$(fuser $f_opts "$mnt" 2>/dev/null)"
+				pids="$(timeout -k 10 -s KILL "${rc_fuser_timeout:-60}" \
+					fuser $f_opts "$mnt" 2>/dev/null)"
 			fi
 			case " $pids " in
 				*" $$ "*)
-- 
cgit v1.2.3