Re: linux-next: manual merge of the selinux tree with the vfs tree
From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2018-12-03 21:56:49
Also in:
linux-fsdevel, lkml, selinux
From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2018-12-03 21:56:49
Also in:
linux-fsdevel, lkml, selinux
On Mon, Dec 03, 2018 at 11:12:59AM +0100, Ondrej Mosnacek wrote:
I think I figured out what's the problem. NFS still creates the submount via the old vfs_submount() call, which calls vfs_kern_mount(), which creates an fs_context with FS_CONTEXT_FOR_USER_MOUNT because FS_CONTEXT_FOR_SUBMOUNT needs the mountpoint dentry reference and there is currently no way to pass that to vfs_kern_mount(). This is further complicated by the fact that vfs_submount() accepts only a const reference to the mountpoint, while vfs_new_fs_context() expects a non-const one... I think all users of the old vfs_submount call should be converted to the new API before the VFS changes are merged into mainline, otherwise they will break the SELinux submount fix. We could work around it in the SELinux hook by checking the fc->sb_flags[_mask] for SB_SUBMOUNT, but I guess that would be a hack.
Could you take a look at vfs.git#Q28? There's still a massive reshuffling going on, so there will be more branches; this one is the latest at the moment. I really hate the situation around sb_clone_mnt_opts/sb_set_mnt_opts and I'm none too fond of the way fs_context_validate is done, so there will be quite a bit of LSM tweaking. If we are doing that, let's do it right...