[PATCH v4 0/3] xfs: set aside allocation btree blocks from block reservation

Brian Foster
2021-04-23T13:10:56Z

Hi all,

Here's v4 of the proposed allocbt block set aside fix. The patches have
been swizzled around a bit based on previous feedback to try and avoid
confusion over what bits are perag res related and not. This hopefully
facilitates analysis when it comes time to evaluate potential changes to
remove the current perag res mount time AG header scan behavior on which
this currently depends. Otherwise the actual code changes from v3 are
fairly light and documented in the changelog below. Thoughts, reviews,
flames appreciated.

Brian

v4:
- Fix up perag res logic to not skip pagf init on partial res failure.
- Split up set aside patch into separate counter mechanism and set aside
policy patches.
- Drop unnecessary ->m_has_agresv flag as pagf's are always initialized
on filesystems with active reservations.
v3: https://lore.kernel.org/linux-xfs/20210318161707.723742-1-bfoster@redhat.com/
- Use a mount flag for easy detection of active perag reservation.
- Filter rmapbt blocks from allocbt block accounting.
v2: https://lore.kernel.org/linux-xfs/20210222152108.896178-1-bfoster@redhat.com/
- Use an atomic counter instead of a percpu counter.
v1: https://lore.kernel.org/linux-xfs/20210217132339.651020-1-bfoster@redhat.com/

Brian Foster (3):
xfs: unconditionally read all AGFs on mounts with perag reservation
xfs: introduce in-core global counter of allocbt blocks
xfs: set aside allocation btree blocks from block reservation

fs/xfs/libxfs/xfs_ag_resv.c | 34 ++++++++++++++++++++++-----------
fs/xfs/libxfs/xfs_alloc.c | 12 ++++++++++++
fs/xfs/libxfs/xfs_alloc_btree.c | 2 ++
fs/xfs/xfs_mount.c | 15 ++++++++++++++-
fs/xfs/xfs_mount.h | 6 ++++++
5 files changed, 57 insertions(+), 12 deletions(-)

--
2.26.3