android_kernel_google_msm/fs
Eric W. Biederman 7c4459717a userns: Convert vfs posix_acl support to use kuids and kgids
- In setxattr if we are setting a posix acl convert uids and gids from
  the current user namespace into the initial user namespace, before
  the xattrs are passed to the underlying filesystem.

  Untranslatable uids and gids are represented as -1 which
  posix_acl_from_xattr will represent as INVALID_UID or INVALID_GID.
  posix_acl_valid will fail if an acl from userspace has any
  INVALID_UID or INVALID_GID values.  In net this guarantees that
  untranslatable posix acls will not be stored by filesystems.

- In getxattr if we are reading a posix acl convert uids and gids from
  the initial user namespace into the current user namespace.

  Uids and gids that can not be tranlsated into the current user namespace
  will be represented as -1.

- Replace e_id in struct posix_acl_entry with an anymouns union of
  e_uid and e_gid.  For the short term retain the e_id field
  until all of the users are converted.

- Don't set struct posix_acl.e_id in the cases where the acl type
  does not use e_id.  Greatly reducing the use of ACL_UNDEFINED_ID.

- Rework the ordering checks in posix_acl_valid so that I use kuid_t
  and kgid_t types throughout the code, and so that I don't need
  arithmetic on uid and gid types.

Change-Id: If5ca5f58195e29b3c8cb51bd7769c980dc7da3a4
Cc: Theodore Tso <tytso@mit.edu>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Cc: Jan Kara <jack@suse.cz>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
2020-12-07 21:02:17 +03:00
..
9p mm: kill vma flag VM_CAN_NONLINEAR 2020-11-29 16:11:40 +03:00
adfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
affs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
afs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
autofs4 stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
befs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
bfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
btrfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
cachefiles don't pass nameidata * to vfs_create() 2018-12-07 22:28:48 +04:00
ceph mm: kill vma flag VM_CAN_NONLINEAR 2020-11-29 16:11:40 +03:00
cifs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
coda fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
configfs stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
cramfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
crypto ext4/fscrypto: avoid RCU lookup in d_revalidate 2016-10-29 23:12:37 +08:00
debugfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
devpts fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
dlm
ecryptfs don't pass nameidata * to vfs_create() 2018-12-07 22:28:48 +04:00
efs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
exofs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
exportfs move d_rcu from overlapping d_child to overlapping d_alias 2017-09-22 19:11:55 +03:00
ext2 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ext3 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ext4 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
f2fs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
fat fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
freevxfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
fscache lib/radix-tree.c: make radix_tree_node_alloc() work correctly within interrupt 2020-12-07 21:02:05 +03:00
fuse fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
gfs2 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
hfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
hfsplus fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
hostfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
hpfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
hppfs stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
hugetlbfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
isofs stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
jbd
jbd2 jbd2: Fix unreclaimed pages after truncate in data=journal mode 2016-10-26 23:15:34 +08:00
jffs2 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
jfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
lockd lockd: Try to reconnect if statd has moved 2015-02-02 17:04:42 +08:00
logfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
minix fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ncpfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
nfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
nfs_common
nfsd don't pass nameidata * to vfs_create() 2018-12-07 22:28:48 +04:00
nilfs2 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
nls
notify fanotify: check file flags passed in fanotify_init 2018-12-07 22:28:48 +04:00
ntfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ocfs2 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
omfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
openpromfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
proc fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
pstore fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
qnx4 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
qnx6 fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
quota vfs: define struct filename and have getname() return it 2018-12-07 22:28:48 +04:00
ramfs don't pass nameidata to ->create() 2018-12-07 22:28:00 +04:00
reiserfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
romfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
sdcardfs mm: kill vma flag VM_CAN_NONLINEAR 2020-11-29 16:11:40 +03:00
squashfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
sysfs stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
sysv fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ubifs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
udf fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
ufs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
xfs fs: push sync_filesystem() down to the file system's remount_fs() 2020-11-29 16:11:45 +03:00
yaffs2
aio.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
anon_inodes.c
attr.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
bad_inode.c mm/fs: remove truncate_range 2020-12-07 20:57:30 +03:00
binfmt_aout.c
binfmt_elf.c binfmt_elf: Don't clobber passed executable's file header 2016-10-26 23:15:28 +08:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a signal 2013-09-07 21:58:16 -07:00
block_dev.c writeback: Fix periodic writeback after fs mount 2013-07-28 16:26:08 -07:00
buffer.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
char_dev.c
compat.c vfs: define struct filename and have getname() return it 2018-12-07 22:28:48 +04:00
compat_binfmt_elf.c
compat_ioctl.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
dcache.c [O_TMPFILE] it's still short a few helpers, but infrastructure should be OK now... 2018-12-07 22:28:48 +04:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
exec.c vfs: make path_openat take a struct filename pointer 2018-12-07 22:28:48 +04:00
fcntl.c vfs: add missing check for __O_TMPFILE in fcntl_init() 2018-12-07 22:28:48 +04:00
fhandle.c vfs: read file_handle only once in handle_to_path 2016-10-29 23:12:11 +08:00
fifo.c
file.c fs/file.c:fdtable: avoid triggering OOMs from alloc_fdmem 2014-02-22 10:32:45 -08:00
file_table.c get rid of s_files and files_lock 2016-03-21 09:17:55 +08:00
filesystems.c vfs: define struct filename and have getname() return it 2018-12-07 22:28:48 +04:00
fs-writeback.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
fs_struct.c sdcardfs: override umask on mkdir and create 2017-09-22 19:12:02 +03:00
generic_acl.c BACKPORT: posix_acl: Clear SGID bit when setting file permissions 2017-06-26 20:26:17 +03:00
inode.c allow the temp files created by open() to be linked to 2018-12-07 22:28:48 +04:00
internal.h vfs: make path_openat take a struct filename pointer 2018-12-07 22:28:48 +04:00
ioctl.c
ioprio.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
Kconfig Included sdcardfs source code for kernel 3.0 2017-09-22 19:11:56 +03:00
Kconfig.binfmt
libfs.c stop passing nameidata to ->lookup() 2018-12-07 22:26:28 +04:00
locks.c locks: allow __break_lease to sleep even when break_time is 0 2014-05-13 14:11:31 +02:00
Makefile Included sdcardfs source code for kernel 3.0 2017-09-22 19:11:56 +03:00
mbcache.c
mount.h proc: Usable inode numbers for the namespace file descriptors. 2015-07-13 11:18:01 -07:00
mpage.c
namei.c path_openat(): fix double fput() 2018-12-07 22:28:48 +04:00
namespace.c vfs: define struct filename and have getname() return it 2018-12-07 22:28:48 +04:00
no-block.c
open.c fs: Fix file mode for O_TMPFILE 2018-12-07 22:28:48 +04:00
pipe.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
pnode.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
pnode.h ANDROID: mnt: remount should propagate to slaves of slaves 2017-09-22 19:12:11 +03:00
posix_acl.c userns: Convert vfs posix_acl support to use kuids and kgids 2020-12-07 21:02:17 +03:00
proc_namespace.c vfs: Allow filesystems to access their private mount data 2017-09-22 19:12:06 +03:00
read_write.c
read_write.h
readdir.c kernel: Only expose su when daemon is running 2017-05-19 18:41:25 -06:00
select.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
seq_file.c fs/seq_file: Use vmalloc by default for allocations > PAGE_SIZE 2014-11-18 15:13:24 -08:00
signalfd.c
splice.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
stack.c
stat.c vfs: make O_PATH file descriptors usable for 'fstat()' 2020-11-22 01:21:34 +03:00
statfs.c vfs: allow O_PATH file descriptors for fstatfs() 2013-10-22 09:02:25 +01:00
super.c vmscan: remove obsolete shrink_control comment 2020-11-29 16:11:26 +03:00
sync.c fs/sync.c: make sync_file_range(2) use WB_SYNC_NONE writeback 2017-12-31 13:02:49 +03:00
timerfd.c timerfd: support CLOCK_BOOTTIME clock 2017-08-27 19:07:23 +03:00
utimes.c vfs: Add setattr2 for filesystems with per mount permissions 2017-09-22 19:12:07 +03:00
xattr.c userns: Convert vfs posix_acl support to use kuids and kgids 2020-12-07 21:02:17 +03:00
xattr_acl.c userns: Convert vfs posix_acl support to use kuids and kgids 2020-12-07 21:02:17 +03:00