Call for testing and review of mount detach fixes
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest9 patches 1 replyIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/9 | mnt: Improve the umount_tree flagsfs/ fs/ | +16 | 0 replies | |
| 2/9 | mnt: Don't propagate umounts in __detach_mountsfs/ | +1 | 0 replies | |
| 3/9 | mnt: In umount_tree reuse mnt_list instead of mnt_hashfs/ fs/ fs/ | +23 | 0 replies | |
| 4/9 | mnt: Add MNT_UMOUNT flagfs/ fs/ include/ | +5 | 0 replies | |
| 5/9 | mnt: Delay removal from the mount hash.fs/ fs/ | +8 | 0 replies | |
| 6/9 | mnt: Factor out __detach_mnt from detach_mntfs/ | +10 | 0 replies | |
| 7/9 | mnt: Simplify umount_treefs/ | +1 | 0 replies | |
| 8/9 | mnt: Remove redundant NULL tests in namespace_unlockfs/ | +2 | 0 replies | |
| 9/9 | mnt: Honor MNT_LOCKED when detaching mountsfs/ | +43 | 0 replies |
Reviews trailers per patch
None of the 9 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.
| Patch | NeilBrown |
|---|---|
| Series | R-b R-b |
| 1/9 | |
| 2/9 | |
| 3/9 | |
| 4/9 | |
| 5/9 | |
| 6/9 | |
| 7/9 | |
| 8/9 | |
| 9/9 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH review 0/9] Call for testing and review of mount detach fixes
Way back in October Andrey Vagin reported that umount(MNT_DETACH) could be used to defeat MNT_LOCKED.
That MNT_DETACH is allowed in user namespace comes from my early misunderstanding what MNT_DETACH does. My mistake.
To avoid breaking existing userspace the conflict between MNT_DETACH and MNT_LOCKED is fixed by leaving locked umounts attached in the mount hash table until the last reference goes away.
While investigating this issue I also found an issue with __detach_mounts. The code was unnecessarily and incorrectly triggering mount propagation. Resulting in too many mounts going away when a directory is deleted, and too many cpu cycles burned while doing that.
For those who like to see everything in a single tree the code is at:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-testing
Eric W. Biederman (9):
mnt: Improve the umount_tree flags
mnt: Don't propagate umounts in __detach_mounts
mnt: In umount_tree reuse mnt_list instead of mnt_hash
mnt: Add MNT_UMOUNT flag
mnt: Delay removal from the mount hash.
mnt: Factor out __detach_mnt from detach_mnt
mnt: Simplify umount_tree
mnt: Remove redundant NULL tests in namespace_unlock
mnt: Honor MNT_LOCKED when detaching mounts
fs/namespace.c | 150 +++++++++++++++++++++++++++++++------------------- fs/pnode.c | 8 +-- fs/pnode.h | 3 +- include/linux/mount.h | 1 + 4 files changed, 99 insertions(+), 63 deletions(-)