[PATCH v3 0/4] Support user xattrs in cgroupfs

From: Daniel Xu
Date: Thu Mar 12 2020 - 16:03:53 EST


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 v2:
- Rephrased commit message for "kernfs: kvmalloc xattr value instead of
kmalloc"

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

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