On Tue, Apr 29, 2025 at 02:21:05PM +0200, Christoph Hellwig wrote:
On Fri, Apr 25, 2025 at 04:44:54PM +0000, John Garry wrote:
quoted
+ /* Configure hardware atomic write geometry */
+ xfs_buftarg_config_atomic_writes(mp->m_ddev_targp);
+ if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp)
+ xfs_buftarg_config_atomic_writes(mp->m_logdev_targp);
+ if (mp->m_rtdev_targp && mp->m_rtdev_targp != mp->m_ddev_targp)
+ xfs_buftarg_config_atomic_writes(mp->m_rtdev_targp);
So this can't be merged into xfs_setsize_buftarg as suggeted last round
instead of needing yet another per-device call into the buftarg code?
Oh, heh, I forgot that xfs_setsize_buftarg is called a second time by
xfs_setup_devices at the end of fill_super. xfs_setup_devices is a
better place to call xfs_buftarg_config_atomic_writes.
I don't like the idea of merging the hw atomic write detection into
xfs_setsize_buftarg itself because (a) it gets called for the data
device before we've read the fs blocksize so the validation is
meaningless and (b) that makes xfs_setsize_buftarg's purpose less
cohesive.
--D