xfs
[Top] [All Lists]

[PATCH 0/9] xfs: xfs_ioctl_setxattr rework

To: xfs@xxxxxxxxxxx
Subject: [PATCH 0/9] xfs: xfs_ioctl_setxattr rework
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 27 Jan 2015 14:14:37 +1100
Cc: iustin@xxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
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.

<Prev in Thread] Current Thread [Next in Thread>