On 23/04/2025 09:10, Christoph Hellwig wrote:
On Wed, Apr 23, 2025 at 08:15:43AM +0100, John Garry wrote:
Ideally we could have not set them in the first place, but need to know the
blocksize when xfs_alloc_buftarg() is called, but it is not yet set for
mp/sb. Is there any neat way to know the blocksize when xfs_alloc_buftarg()
is called?
The buftarg is needed to read the superblock, which is used to determine
the block size, so no.
But maybe we should just delay setting the atomic values until later so
that it can be done in a single pass? E.g. into xfs_setsize_buftarg
which then should probably be rename to something like
xfs_buftarg_setup.
How about just do away with btp->bt_bdev_awu_{min, max} struct members,
and call bdev_atomic_write_unit_max(mp->m_ddev_targp->bt_bdev) [and same
for RT] to later to set the mp awu max values at mountfs time? I think
that would work..