mbox series

[v2,0/3] btrfs: qgroup: Prepare to deprecate unused features for btrfs_qgroup_inherit()

Message ID 20180907102745.10387-1-wqu@suse.com (mailing list archive)
Headers show
Series btrfs: qgroup: Prepare to deprecate unused features for btrfs_qgroup_inherit() | expand

Message

Qu Wenruo Sept. 7, 2018, 10:27 a.m. UTC
This patchset can be fetched from github:
https://github.com/adam900710/linux/tree/qgroup_inherit_check
Which is based on v4.19-rc1 tag.

This patchset will firstly set btrfs_qgroup_inherit structure size limit
from PAGE_SIZE to fixed SZ_4K.
I understand this normally will cause compatibility problem, but
considering how minor this feature is and no sane guy should use it for
over 100 qgroups, it should be fine in real world.

The theoretical difference can be found in the commit message of the 1st
patch.

The 2nd patch introduce check function for btrfs_qgroup_inherit
structure and deprecates the following features:
1) flags
   No unsupported flags should sneak in.

2) num_qgroups limit
   It should not exceed the maximum size of btrfs_qgroup_inherit nor the
   size passed from btrfs_ioctl_vol_args_v2.

3) qgroupid
   No valid qgroupid should be 0/0.

The 3rd patch prepare to deprecate the following features:

1) flags
2) num_excl|ref_copies
3) btrfs_qgroup_inherit::lim

Details can be found in the 3rd patch.

changelog:
v2:
  Show more details in the 1st patch about the incompatibility for 64K
  page size arch.
  Don't deprecate unused features right now, only mark then deprecated
  and output warning message for now.
  Better split validation check and deprecation patches.

Qu Wenruo (3):
  btrfs: Set qgroup inherit size limit to SZ_4K instead of page size
  btrfs: qgroup: Validate btrfs_qgroup_inherit structure before passing
    it to qgroup
  btrfs: qgroup: Prepare to deprecate some btrfs_qgroup_inherit features

 fs/btrfs/ioctl.c           |  7 +++++-
 fs/btrfs/qgroup.c          | 44 ++++++++++++++++++++++++++++++++++++++
 fs/btrfs/qgroup.h          |  3 +++
 include/uapi/linux/btrfs.h | 17 +++++++--------
 4 files changed, 61 insertions(+), 10 deletions(-)