mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
fcntl: handle idmapped mounts
Enable the setfl() helper to handle idmapped mounts by passing down the mount's user namespace. If the initial user namespace is passed nothing changes so non-idmapped mounts will see identical behavior as before. Link: https://lore.kernel.org/r/20210121131959.646623-20-christian.brauner@ubuntu.com Cc: Christoph Hellwig <hch@lst.de> Cc: David Howells <dhowells@redhat.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: linux-fsdevel@vger.kernel.org Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: James Morris <jamorris@linux.microsoft.com> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
d06c26f196
commit
9eccd12ce7
@ -25,6 +25,7 @@
|
||||
#include <linux/user_namespace.h>
|
||||
#include <linux/memfd.h>
|
||||
#include <linux/compat.h>
|
||||
#include <linux/mount.h>
|
||||
|
||||
#include <linux/poll.h>
|
||||
#include <asm/siginfo.h>
|
||||
@ -46,7 +47,7 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
|
||||
|
||||
/* O_NOATIME can only be set by the owner or superuser */
|
||||
if ((arg & O_NOATIME) && !(filp->f_flags & O_NOATIME))
|
||||
if (!inode_owner_or_capable(&init_user_ns, inode))
|
||||
if (!inode_owner_or_capable(file_mnt_user_ns(filp), inode))
|
||||
return -EPERM;
|
||||
|
||||
/* required for strict SunOS emulation */
|
||||
|
Loading…
Reference in New Issue
Block a user