Question About Cleanly Unmounting Slave Bind Mounts

Home » CentOS » Question About Cleanly Unmounting Slave Bind Mounts
CentOS No Comments


I asked the question on stackexchange ( and CentOS 7 bug report ( but didn’t get any useful response, so I am thinking if I can get some help here.

The problem arose when I tried to rbind mount /dev and /proc to a chroot sandbox and to unmount it, I have to set the mount to slave so that unmounting submounts of /dev (e.g. /dev/pts) won’t unmount submounts of /dev. This works for other distributions such as Fedora 23 and Ubuntu 14.04, but under CentOS 7, umount succeeds but the directory can’t be removed. For some reason, I have to stick to CentOS 7, so I wonder if there is a work around for it.

The steps to reproduce:
[hidden]$ mkdir -p A B/a C/b
[hidden]$ sudo mount –bind A B/a
[hidden]$ sudo mount –rbind B C/b
[hidden]$ sudo mount –make-rslave C/b
[hidden]$ sudo umount C/b/a
[hidden]$ sudo umount C/b
[hidden]$ rmdir C/b rmdir: failed to remove ‘C/b’: Device or resource busy

None of mount, cat /proc/mounts, cat /etc/mtab, sudo lsof, sudo fuser C/b shows any process using the directory C/b; stat C/b shows it is different inode than B, meaning it has already been unmounted successfully.

The kernel version is 3.10.0-327.10.1.el7.x86_64.

Any suggestion is welcomed.附件(0个)全部下载超大附件(0个)