--- mount/umount.c 2012-05-29 08:58:04.000000000 +0000 +++ mount/umount.c.oden 2012-05-29 09:01:23.000000000 +0000 @@ -237,6 +237,8 @@ umount_one (const char *spec, const char if (delloop && is_loop_device(spec)) myloop = 1; + block_signals(SIG_BLOCK); + if (lazy) { res = umount2 (node, MNT_DETACH); if (res < 0) @@ -281,6 +283,7 @@ umount_one (const char *spec, const char remnt.mnt_passno = 0; update_mtab(node, &remnt); } + block_signals(SIG_UNBLOCK); return 0; } else if (errno != EBUSY) { /* hmm ... */ perror("remount"); @@ -350,6 +353,8 @@ umount_one (const char *spec, const char #endif } + block_signals(SIG_UNBLOCK); + if (res >= 0) return 0; if (umnt_err)