namespace related fixes for 4.10-rc3
Linus,
Please pull the for-linus branch from the git tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-linus
HEAD: cd293bfacd57928627ef7da6194e0cbe24db3291 sysctl: Drop reference added by grab_header in proc_sys_readdir
This tree contains 5 fixes.
The first is a fix for a race that can causes oopses under the right circumstances, and that someone just recently encountered.
The second is a fix that removes the possibility of creating unbounded chains in the mount hash table. After a lot of back and forth this fix has finally matured into something mergeable.
Past that are several small trivial correct fixes. A real issue that was blocking development of an out of tree driver, but does not appear to have caused any actual problems for in-tree code. A potential deadlock that was reported by lockdep. And a deadlock people have experienced and took the time to track down caused by a cleanup that removed the code to drop a reference count.
Andrei Vagin (1):
pid: fix lockdep deadlock warning due to ucount_lock
Eric W. Biederman (3):
mnt: Protect the mountpoint hashtable with mount_lock
mnt: Tuck mounts under others instead of creating shadow/side mounts.
libfs: Modify mount_pseudo_xattr to be clear it is not a userspace mount
Zhou Chengming (1):
sysctl: Drop reference added by grab_header in proc_sys_readdir
fs/dcache.c | 7 +- fs/libfs.c | 3 +- fs/mount.h | 1 - fs/namespace.c | 174 +++++++++++++++++++++++++++++-------------------- fs/pnode.c | 27 ++++++-- fs/pnode.h | 2 + fs/proc/proc_sysctl.c | 3 +- kernel/pid_namespace.c | 10 +-- 8 files changed, 142 insertions(+), 85 deletions(-)
Eric
A message that is not in the archive (sent off-list or not yet received): 87d1fzzbc2.fsf-aS9lmoZGLiVWk0Htik3J/[email protected]
Quoted 2 lines · Eric W. Biederman
Eric W. Biederman (3):
mnt: Protect the mountpoint hashtable withmount_lock
ACK
Quoted 1 line
mnt: Tuck mounts under others instead of creating shadow/side mounts.
NAK; you have reintroduced put_mountpoint() outside of mount lock in there and you've got seriously confused umount side of the things.
Quoted 1 line
libfs: Modify
mount_pseudo_xattrto be clear it is not a userspace mount
ACK
Quoted 2 lines
Zhou Chengming (1):
sysctl: Drop reference added bygrab_headerinproc_sys_readdir
ACK
The rest of the queue is fine.
Al Viro
maintainerQuoted 2 lines · Eric W. Biederman
Eric W. Biederman (3):
mnt: Protect the mountpoint hashtable withmount_lock
ACK
Quoted 1 line
mnt: Tuck mounts under others instead of creating shadow/side mounts.
NAK; you have reintroduced put_mountpoint() outside of mount lock in there and you've got seriously confused umount side of the things.
Quoted 1 line
libfs: Modify
mount_pseudo_xattrto be clear it is not a userspace mount
ACK
Quoted 2 lines
Zhou Chengming (1):
sysctl: Drop reference added bygrab_headerinproc_sys_readdir
ACK
The rest of the queue is fine.
Al Viro
maintainerQuoted 10 lines · Al Viro
Quoted 2 lines · Eric W. Biederman
Eric W. Biederman (3):
mnt: Protect the mountpoint hashtable withmount_lockACK
Quoted 1 line
mnt: Tuck mounts under others instead of creating shadow/side mounts.
NAK; you have reintroduced
put_mountpoint()outside of mount lock in there and you've got seriously confused umount side of the things.
PS: details are in my reply (admittedly, sent only ~20 minutes before your pull request) to your patch. Check Message-ID <20170107050644.GA12074-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
My apologies for not getting to it yesterday (the patch was posted a couple of days ago, AFAICS) - I'd been off-net since Wednesday, just got back ;-/
Quoted 7 lines · Al Viro
Quoted 6 lines · Al Viro
Quoted 2 lines · Eric W. Biederman
Eric W. Biederman (3):
mnt: Protect the mountpoint hashtable withmount_lockACK
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
mnt: Tuck mounts under others instead of creating shadow/side mounts.
NAK; you have reintroduced
put_mountpoint()outside of mount lock in there and you've got seriously confused umount side of the things.PS: details are in my reply (admittedly, sent only ~20 minutes before your pull request) to your patch. Check Message-ID <20170107050644.GA12074-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
I suspect that was sent while I was composing my pull request, and the locking around put_mountpoint I did fail to catch during my rebase. I will finish our conversation about that before I resend that patch.
Quoted 3 lines
My apologies for not getting to it yesterday (the patch was posted a couple of days ago, AFAICS) - I'd been off-net since Wednesday, just got back ;-/
You and Ram Pai had said reasonably pleasant things about a previous version of that patch.
Eric
[GIT PULL] namespace related fixes for 4.10-rc4
In reply to Eric W. BiedermanLinus,
Please pull the for-linus branch from the git tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-linus
HEAD: 93362fa47fe98b62e4a34ab408c4a418432e7939 sysctl: Drop reference added by grab_header in proc_sys_readdir
This tree contains 4 fixes.
The first is a fix for a race that can causes oopses under the right circumstances, and that someone just recently encountered.
Past that are several small trivial correct fixes. A real issue that was blocking development of an out of tree driver, but does not appear to have caused any actual problems for in-tree code. A potential deadlock that was reported by lockdep. And a deadlock people have experienced and took the time to track down caused by a cleanup that removed the code to drop a reference count.
I have dropped the mount hash table fix that Al objected to and will come back to that when the discussion around that patch is complete.
Andrei Vagin (1):
pid: fix lockdep deadlock warning due to ucount_lock
Eric W. Biederman (2):
mnt: Protect the mountpoint hashtable with mount_lock
libfs: Modify mount_pseudo_xattr to be clear it is not a userspace mount
Zhou Chengming (1):
sysctl: Drop reference added by grab_header in proc_sys_readdir
fs/dcache.c | 7 ++++-- fs/libfs.c | 3 ++- fs/namespace.c | 64 +++++++++++++++++++++++++++++++++++--------------- fs/proc/proc_sysctl.c | 3 ++- kernel/pid_namespace.c | 10 ++++---- 5 files changed, 60 insertions(+), 27 deletions(-)
Eric