kill a hung mount process

I have a virtual machine drive that ran out of space, so I shutdown the VM, extended the volume using lvextend. After resizing the partition (ext3), I ran e2fsck on it, and it found and corrected errors. Unfortunately, when I ran efsck one more time, there were more errors that had to be fixed. I went through 3 rounds of e2fsck before I decided to try mounting it to clean up some space manually. I tried mounting it, but the mount process hung. I tried to "kill -9" the mount process, but that did not kill it. I killed the parent process, but that did not kill it either.

Any ideas on how to kill a rogue mount process?

Some evidence:

 ps -l 13292
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY        TIME CMD
4 R     0 13292     1 99  85   0 - 17964 -      ?         11:27 mount /dev/mapper/xen7-123p3 /tmp/p3/
lsof -p 13292
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
mount   13292 root  cwd    DIR    9,2     4096 25264129 /root
mount   13292 root  rtd    DIR    9,2     4096        2 /
mount   13292 root  txt    REG    9,2    61656  2916434 /bin/mount
mount   13292 root  mem    REG    9,2   144776 31457282 /lib64/ld-2.5.so
mount   13292 root  mem    REG    9,2  1718232 31457284 /lib64/libc-2.5.so
mount   13292 root  mem    REG    9,2    23360 31457291 /lib64/libdl-2.5.so
mount   13292 root  mem    REG    9,2    43808 31457783 /lib64/libblkid.so.1.0
mount   13292 root  mem    REG    9,2   247496 31457331 /lib64/libsepol.so.1
mount   13292 root  mem    REG    9,2    95464 31457337 /lib64/libselinux.so.1
mount   13292 root  mem    REG    9,2   154640 31457491 /lib64/libdevmapper.so.1.02
mount   13292 root  mem    REG    9,2    17936 31457472 /lib64/libuuid.so.1.2
mount   13292 root  mem    REG    9,2 56438208 12684878 /usr/lib/locale/locale-archive
mount   13292 root    0u   CHR 136,11      0t0       13 /dev/pts/11 (deleted)
mount   13292 root    1u   CHR 136,11      0t0       13 /dev/pts/11 (deleted)
mount   13292 root    2u   CHR 136,11      0t0       13 /dev/pts/11 (deleted)
umount -f /tmp/p3/
umount2: Invalid argument
umount: /tmp/p3/: not mounted

Solution 1:

umount -lf (lazy force) should work. If this does not work either, I think there is no other solution then reboot the machine.

Solution 2:

After exhausting all possibilities, I finally decided to reboot. Unfortunately, the "shutdown -r" hung because it could not release this mount process. For future reference, to force a reboot when you have a hung IO process like this, do the following:

    echo 1 > /proc/sys/kernel/sysrq
    echo b > /proc/sysrq-trigger

Solution 3:

John, check http://en.wikipedia.org/wiki/Magic_SysRq_key. Before echoing B to sysrq-trigger, you might want to do the full REISUB to avoid losing data.