User extended attributes are useful as metadata storage for kernfs consumers like cgroups. Especially in the case of cgroups, it is useful to have a central metadata store that multiple processes/services can use to coordinate actions. A concrete example is for userspace out of memory killers. We want to let delegated cgroup subtree owners (running as non-root) to be able to say "please avoid killing this cgroup". This is especially important for desktop linux as delegated subtrees owners are less likely to run as root. The first two commits set up some stuff for the third commit which intro introduce a new flag, KERNFS_ROOT_SUPPORT_USER_XATTR, that lets kernfs consumers enable user xattr support. The final commit turns on user xattr support for cgroupfs. Changes from v1: - use kvmalloc for xattr values - modify simple_xattr_set to return removed size - add accounting for total user xattr size per cgroup Daniel Xu (4): kernfs: kvmalloc xattr value instead of kmalloc kernfs: Add removed_size out param for simple_xattr_set kernfs: Add option to enable user xattrs cgroupfs: Support user xattrs fs/kernfs/inode.c | 91 ++++++++++++++++++++++++++++++++++++- fs/kernfs/kernfs-internal.h | 2 + fs/xattr.c | 17 +++++-- include/linux/kernfs.h | 11 ++++- include/linux/xattr.h | 3 +- kernel/cgroup/cgroup.c | 3 +- mm/shmem.c | 2 +- 7 files changed, 119 insertions(+), 10 deletions(-) -- 2.21.1