On Mon, Jun 27, 2022 at 10:18:18AM +1000, Dave Chinner wrote: > Hi folks, > > This is the set of per-ag conversions that I'm proposing for the > 5.20 cycle. It is the initial subset of changes that were listed in > the larger "upcoming perag changes for shrink" patchset here: > > https://lore.kernel.org/linux-xfs/20220611012659.3418072-1-david@xxxxxxxxxxxxx/ > > This series drives the perag down into the AGI, AGF and AGFL access > routines and unifies the perag structure initialisation with the > high level AG header read functions. This largely replaces the > xfs_mount/agno pair that is passed to all these functions with a > perag, and in most places we already have a perag ready to pass in. > There are a few places where perags need to be grabbed before > reading the AG header buffers - some of these will need to be driven > to higher layers to ensure we can run operations on AGs without > getting stuck part way through waiting on a perag reference. > > The latter section of this patchset moves some of the AG geometry > information from the xfs_mount to the xfs_perag, and starts > converting code that requires geometry validation to use a perag > instead of a mount and having to extract the AGNO from the object > location. This also allows us to store the AG size in the perag and > then we can stop having to compare the agno against sb_agcount to > determine if the AG is the last AG and so has a runt size. This > greatly simplifies some of the type validity checking we do and > substantially reduces the CPU overhead of type validity checking. It > also cuts over 1.2kB out of the binary size. > > This runs through fstests cleanly - I don't expect there to be > hidden surprises in it so I think these patches are good to go > for the 5.20 cycle. > > Comments and thoughts welcome.... The entire series LGTM Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > > -Dave. > >