Re: [PATCH v11 02/16] xfs: only call xfs_setsize_buftarg once per buffer target

Christoph Hellwig
2025-05-05T05:40:42Z

On Sun, May 04, 2025 at 08:59:09AM +0000, John Garry wrote:
> +static inline int xfs_buftarg_sync(struct xfs_buftarg *btp)
> +{
> + return sync_blockdev(btp->bt_bdev);
> +}

What is the point in having this wrapper?

> +/*
> + * Flush and invalidate all devices' pagecaches before reading any metadata
> + * because XFS doesn't use the bdev pagecache.
> + */
> +STATIC int
> +xfs_preflush_devices(
> + struct xfs_mount *mp)
> +{
> + int error;
> +
> + error = xfs_buftarg_sync(mp->m_ddev_targp);
> + if (error)
> + return error;
> +
> + if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) {
> + error = xfs_buftarg_sync(mp->m_ddev_targp);
> + if (error)
> + return error;
> + }

Why does this duplicate all the logic instead of being folded into
xfs_open_devices?