The rationale for the last one is that the user might not have access
to the submounts. Recursive bind mounts can be implemented in
userspace if needed.
# mkdir -p /tmp/a/b/c
# mkdir /tmp/x
# mount --bind /tmp/a /tmp/x
# mount --bind /bin /tmp/x/b/c
# mv /tmp/a/b/c /tmp
mv: cannot move `/tmp/a/b/c' to `/tmp/c': Device or resource busy
# mv /tmp/a/b /tmp
# ls -al /tmp/x
total 64
drwxr-xr-x 2 root root 4096 Oct 6 12:55 .
drwxrwxrwt 95 root root 57344 Oct 6 12:55 ..
# umount /tmp/x
umount: /tmp/x: device is busy.
The mount under /tmp/x/b/c is now inaccessible and lost forever. The
only way to get rid of it is to lazy umount /tmp/x itself.
What this means is that the current EBUSY restriction only prevents
the mountpoint disappearing in a subset of cases.
Miklos
--