suppose I setup chrooted environment as follow:
1. mount some losetup into /test.
2. mount --bind /proc, /sys, /dev and so on into /test/$item
when reboot command is passed, system will start __umount_loopback_loop() from /etc/init.d/functions.
It will not be able to unmount /test because mountpoint is busy (/test/proc is mounted)
I think, __umount_loopback_loop() should detect situation when "fuser" return empty list and still can not umount.
The problem is in the lack of recursive umount functional (see http://firstname.lastname@example.org/msg199613.html)
Other problem is lack of testing for underlying mountpoints in fuser tool.
As the fast way to umount /test when fuser say nothing, is to use umount -l.
I discover, that umount -l will recursively unmount submounts.
Changing this to cover all cases would be too much of a change for an update release - this should be fixed properly in the next major release.
Development Management has reviewed and declined this request. You may appeal
this decision by reopening this request.