[PATCH 0/9] xfs: xfs_ioctl_setxattr rework
Dave Chinner
david at fromorbit.com
Mon Jan 26 21:14:37 CST 2015
Hi folks,
This is a series I started a few months ago when we first started
talking about the issues with extent size hints on directories and
the project ID inherit flags being set on regular files. The code
is particularly nice and has no clear definition of what sort
of changes we allow in the XFS_IOC_FSSETXATTR ioctl.
The first thing the series does is kill the FSX_* flags and separate
out the two different use cases for the xfs_ioctl_setattr()
function. The first is just changing a constrained set of flags via
the xfs_ioc_setxflags(), and the second is supporting
xfs_ioc_fssetxattr(). Factoring out the part of the code that sets
just the inode flags appropriately allows us to kill the FSX_* flags
completely.
The next patch then relaxes the overly defensive approach to
restricting XFS_IOC_FSSETXATTR to only the init namespace. We really
only need to restrict project ID changes - allowing changes to other
parts of the inode are managed by user/group permissions which are
already user namespace aware.
The next part of the patch set factors out the validity checking
of extent size changes and project ID changes from the setattr
functions, making it much clearer the separation between checks and
actions performed by xfs_ioctl_setattr() function.
Finally, with all these changes, Iustin Pop's extent size change
validity checking patch is ported on top. That now becomes a simple,
obvious set of changes to an isolated function, and i've added
comments to explain the rules allowing extent size hints to be
changed.
Comments, thoughts, flames, etc all welcome.
- Dave.
More information about the xfs
mailing list