Skip to content

userns: Convert xfs to use kuid_t/kgid_t where appropriate

Dwight Engen linux-xfs 9 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest posting 2/27 patches 1 replyIn review
  2. v8 posting 1/27 patches 10 repliesSuperseded
  3. v77 patches 26 repliesSuperseded
Earlier versions · 6
VersionPostedPatchesRepliesStatus
v67 patches6 repliesSuperseded
v57 patches4 repliesSuperseded
v47 patches11 repliesSuperseded
v36 patches6 repliesSuperseded
v2 RFC1 patch15 repliesSuperseded
v11 patch15 repliesSuperseded

Changes in v8 from the cover letter

- 0003 only allow setting of projid from init_user_ns
- 0006 change readonly check from IS_RDONLY to xfs style

Patches in v8 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7xfs: create wrappers for converting kuid_t to/from uid_tfs/xfs/xfs_linux.h+26 -00 replies
2/7xfs: convert kuid_t to/from uid_t in ACLsfs/xfs/xfs_acl.c+16 -40 replies
3/7xfs: ioctl check for capabilities in the current user namespacefs/xfs/xfs_ioctl.c kernel/capability.c+10 -20 replies
4/7xfs: convert kuid_t to/from uid_t for internal structuresfs/xfs/xfs_inode.c fs/xfs/xfs_iops.c fs/xfs/xfs_qm.c +2 more+41 -340 replies
5/7xfs: create internal eofblocks structure with kuid_t typesfs/xfs/xfs_fs.h fs/xfs/xfs_icache.c fs/xfs/xfs_icache.h +1 more+56 -190 replies
6/7xfs: add capability check to free eofblocks ioctlfs/xfs/xfs_ioctl.c+6 -00 replies
7/7enable building user namespace with xfsinit/Kconfig+0 -130 replies

Reviews trailers per patch

All 7 patches have a Reviewed-by or Acked-by.

PatchBrian FosterDave ChinnerGao feng
1/7R-b R-b
2/7R-b R-b
3/7R-b R-b
4/7R-b R-b
5/7R-b R-b R-b
6/7R-b R-b R-b
7/7R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v8 thread

Cover letter [PATCH v8 0/7] userns: Convert xfs to use kuid_t/kgid_t where appropriate

Hi All,

This patchset adds USER_NS support to XFS. It has been rebased on top of 2c2bcc07 git://oss.sgi.com/xfs/xfs.git master branch.

The patches do not convert the id's returned from bulkstat, since bulkstat cannot be called from inside a userns right now anyway since the caller must be CAP_SYS_ADMIN in init_user_ns. Similar checks ensure that open_by_handle, and changing of projid can also only be called from init_user_ns.

Changes since v7 patchset
- 0003 only allow setting of projid from init_user_ns
- 0006 change readonly check from IS_RDONLY to xfs style

Changes since v6 patchset (addressing Dave's comments)
- 0006 just do a capable(CAP_SYS_ADMIN) check for XFS_IOC_FREE_EOFBLOCKS

Changes since v5 patchset (addressing Brian's comments,
only 0005 and 0006 are changed):
- 0005 put all eofblocks validation in xfs_fs_eofblocks_from_user()
- 0006 don't export internal flag, add K to internal flag name, start internal flags bits at msb (with the intention that other internal flags would be in descending order) and ensure that it doesn't
accidentally
collide with external flags

Changes since v4 patchset (addressing Dave's comments):
- add parenthesis in if with binary and logical and (EOFBLOCKS flags)
- rename xfs_fs_eofblocks_to_internal -> xfs_fs_eofblocks_from_user and move conversion validation into it
- fix negative error returns from XFS_IOC_FREE_EOFBLOCKS
- add check for read-only filesystem to XFS_IOC_FREE_EOFBLOCKS

Changes since v3 patchset:
- export inode_capable() for building xfs as a module
- implement Brian's proposal for an internal flag to indicate to xfs_inode_free_eofblocks() that it should do a permission check. ioctl callers will always set this flag, which is simpler than making them specify XFS_EOF_FLAGS_UID or XFS_EOF_FLAGS_GID, internal callers can leave it unset so no permission checking is done
- take Brian's suggestion on moving the policy from the conversion function into the ioctl code, and moving stuff to xfs_icache.h

Dwight Engen (7):
xfs: create wrappers for converting kuid_t to/from uid_t
xfs: convert kuid_t to/from uid_t in ACLs
xfs: ioctl check for capabilities in the current user namespace
xfs: convert kuid_t to/from uid_t for internal structures
xfs: create internal eofblocks structure with kuid_t types
xfs: add capability check to free eofblocks ioctl enable building user namespace with xfs

 fs/xfs/xfs_acl.c     | 20 ++++++++++++++++----
 fs/xfs/xfs_fs.h      |  2 +-
 fs/xfs/xfs_icache.c  | 12 ++++++------
 fs/xfs/xfs_icache.h  | 43 +++++++++++++++++++++++++++++++++++++++++++
 fs/xfs/xfs_inode.c   |  9 +++++----
 fs/xfs/xfs_ioctl.c   | 35 +++++++++++++++++++++--------------
 fs/xfs/xfs_iops.c    | 38 ++++++++++++++++++++------------------
 fs/xfs/xfs_linux.h   | 26 ++++++++++++++++++++++++++
 fs/xfs/xfs_qm.c      | 10 +++++-----
 fs/xfs/xfs_quota.h   | 11 ++++++-----
 fs/xfs/xfs_symlink.c |  7 +++++--
 init/Kconfig         | 13 -------------
 kernel/capability.c  |  1 +
 13 files changed, 155 insertions(+), 72 deletions(-)
Signature · 6 lines
1.8.1.4

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs