Possible bug: detached mounts difficult to cleanup
Eric W. Biederman
ebiederm at xmission.com
Wed Jan 11 02:27:05 UTC 2017
Krister Johansen <kjlx at templeofstupid.com> writes:
> I wondered if a naive solution could re-walk the list of mounts
> processed in umount_tree() and if all of the detached but locked mounts
> had a refcount that indicated they're unused, they could be unlocked and
> unmounted. At least in the case of the containers I'm dealing with, the
> the container software should be ensuring that nothing in the container
> has a reference on anything that's under the detached portion of the
> tree. However, there's probably a better way to do this.
So if the code is working correctly that should already happen.
The design is for the parent mount to hold a reference to the submounts.
And when the reference on the parent drops to 0. The references on
all of the submounts will also be dropped.
I was hoping to read the code and point it out to you quickly, but I am
not seeing it now. I am wondering if in all of the refactoring of that
code something was dropped/missed :(
Somewhere there is supposed to be the equivalent of:
pin_insert_group(&p->mnt_umount, &p->mnt_parent->mnt, &unmounted);
when we unhash those mounts because the last count has gone away.
Either it is very sophisticated or I am missing it. Grr....
More information about the Containers