Skip to content

userns: Completion of kuid/kgid/kprojid pushdown.

Eric W. Biederman containers linux-fsdevel linux-xfs lkml 1 version NAK

Status from this message: NACK.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 14 repliesNAK

Patches in v1

#Subject and filesSizeRepliesApplied
1/16xfs: Convert uids and gids in xfs acls to/from kuids and kgidsfs/xfs/xfs_acl.c+19 -46 replies
2/16xfs: Store projectid as a single variable.fs/xfs/xfs_icache.c fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +7 more+24 -232 replies
3/16xfs: Always read uids and gids from the vfs inodefs/xfs/xfs_icache.c fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +4 more+44 -341 reply
4/16xfs: Update inode uids, gids, and projids to be kuids, kgids, and kprojidsfs/xfs/xfs_icache.c fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +5 more+41 -360 replies
5/16xfs: Update xfs_ioctl_setattr to handle projids in any user namespacefs/xfs/xfs_ioctl.c+18 -87 replies
6/16xfs: Use kuids and kgids in xfs_setattr_nonsizefs/xfs/xfs_iops.c+6 -60 replies
7/16xfs: Update ioctl(XFS_IOC_FREE_EOFBLOCKS) to handle callers in any userspacefs/xfs/xfs_icache.c fs/xfs/xfs_icache.h fs/xfs/xfs_ioctl.c+35 -61 reply
8/16xfs: Use kprojids when allocating inodes.fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h fs/xfs/xfs_qm.c +3 more+13 -101 reply
9/16xfs: Modify xfs_qm_vop_dqalloc to take kuids, kgids, and kprojids.fs/xfs/xfs_qm.c fs/xfs/xfs_quota.h+5 -51 reply
10/16xfs: Push struct kqid into xfs_qm_scall_qmlim and xfs_qm_scall_getquotafs/xfs/xfs_dquot.h fs/xfs/xfs_qm.h fs/xfs/xfs_qm_syscalls.c +1 more+39 -311 reply
11/16xfs: Modify xfs_qm_dqget to take a struct kqid.fs/xfs/xfs_dquot.c fs/xfs/xfs_dquot.h fs/xfs/xfs_qm.c +2 more+43 -490 replies
12/16xfs: Remember the kqid for a quotafs/xfs/xfs_dquot.c fs/xfs/xfs_dquot.h fs/xfs/xfs_qm.c+13 -110 replies
13/16xfs: Use q_id instead of q_core.d_id.fs/xfs/xfs_dquot.c fs/xfs/xfs_qm.c fs/xfs/xfs_trace.h +1 more+13 -180 replies
14/16xfs: Enable building with user namespaces enabled.init/Kconfig+0 -10 replies
15/16userns: Now that everything has been converted remove the unnecessary infrastructureinclude/linux/posix_acl.h include/linux/projid.h include/linux/uidgid.h +1 more+0 -630 replies
16/16userns: Remove the EXPERMINTAL kconfig taginit/Kconfig+1 -20 replies

Reviews trailers per patch

2 of 16 patches have a Reviewed-by or Acked-by.

PatchSerge Hallyn
1/16A-b
2/16
3/16
4/16
5/16
6/16
7/16
8/16
9/16
10/16
11/16
12/16
13/16
14/16
15/16A-b
16/16

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH review 00/16] userns: Completion of kuid/kgid/kprojid pushdown.

I have spent some more time with the xfs code and finally figured out what needed to be done to safely add kuid/kgid support without significant logic changes.

My first two xfs changes make the small logical adjustments required of xfs to get the primary inode uid, gid, and projid fields that xfs uses not live in struct xfs_icdinode. After that the patches are pretty much what I have posted before just split up and cleaned up so it is much easier to understand the patches and see that they are doing reasonable things.

xfs being the last of the filesystems to need the userns compatibility code I my patches to remove that compatibility code are at the end of this patchset.

Eric W. Biederman (16):
xfs: Convert uids and gids in xfs acls to/from kuids and kgids
xfs: Store projectid as a single variable.
xfs: Always read uids and gids from the vfs inode
xfs: Update inode uids, gids, and projids to be kuids, kgids, and kprojids
xfs: Update xfs_ioctl_setattr to handle projids in any user namespace
xfs: Use kuids and kgids in xfs_setattr_nonsize
xfs: Update ioctl(XFS_IOC_FREE_EOFBLOCKS) to handle callers in any userspace
xfs: Use kprojids when allocating inodes.
xfs: Modify xfs_qm_vop_dqalloc to take kuids, kgids, and kprojids.
xfs: Push struct kqid into xfs_qm_scall_qmlim and xfs_qm_scall_getquota
xfs: Modify xfs_qm_dqget to take a struct kqid.
xfs: Remember the kqid for a quota
xfs: Use q_id instead of q_core.d_id.
xfs: Enable building with user namespaces enabled.
userns: Now that everything has been converted remove the unnecessary infrastructure
userns: Remove the EXPERMINTAL kconfig tag

 fs/xfs/xfs_acl.c          |   23 ++++++++++--
 fs/xfs/xfs_dquot.c        |   39 ++++++++++++++-------
 fs/xfs/xfs_dquot.h        |   13 +++++--
 fs/xfs/xfs_icache.c       |   12 +++---
 fs/xfs/xfs_icache.h       |   11 +++++-
 fs/xfs/xfs_inode.c        |   25 +++++++++----
 fs/xfs/xfs_inode.h        |   24 +++++++++----
 fs/xfs/xfs_ioctl.c        |   54 ++++++++++++++++++++++------
 fs/xfs/xfs_iops.c         |   34 ++++++++----------
 fs/xfs/xfs_itable.c       |   10 +++--
 fs/xfs/xfs_qm.c           |   85 ++++++++++++++++++++++-----------------------
 fs/xfs/xfs_qm.h           |    4 +-
 fs/xfs/xfs_qm_bhv.c       |    2 +-
 fs/xfs/xfs_qm_syscalls.c  |   24 +++++++------
 fs/xfs/xfs_quota.h        |    4 +-
 fs/xfs/xfs_quotaops.c     |   20 +---------
 fs/xfs/xfs_rename.c       |    2 +-
 fs/xfs/xfs_trace.h        |    2 +-
 fs/xfs/xfs_trans_dquot.c  |    8 +---
 fs/xfs/xfs_utils.c        |    2 +-
 fs/xfs/xfs_utils.h        |    2 +-
 fs/xfs/xfs_vnodeops.c     |   14 ++++----
 include/linux/posix_acl.h |    3 --
 include/linux/projid.h    |   15 --------
 include/linux/uidgid.h    |   22 ------------
 init/Kconfig              |   27 +--------------
 26 files changed, 244 insertions(+), 237 deletions(-)