On Wed, Apr 23, 2025 at 10:33:17AM +0200, Christoph Hellwig wrote: > On Wed, Apr 23, 2025 at 09:28:14AM +0100, John Garry wrote: > >> 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.. > > Sounds reasonable. I disagree, leaving the hardware awu_min/max in the buftarg makes more sense to me because the buftarg is our abstraction for a block device, and these fields describe the atomic write units that we can use with that block device. IOWs, I don't like dumping even more into struct xfs_mount. xfs_group has an awu_max for the software fallback, xfs_buftarg has an awu_min/max for hardware, and even this V8 has yet a third pair of awu_min/max in xfs_mount which I think is just the buftarg version but possibly truncated. I find those last two pairs confusing. --D