Re: [PATCH v9 05/15] xfs: ignore HW which cannot atomic write a single block

Darrick J. Wong
2025-04-29T14:44:47Z

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:
> > + /* 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