Re: [PATCH 14/25] libxfs: convert libxfs_log_clear to use uncached buffers

Christoph Hellwig
2020-02-25T17:49:43Z

On Mon, Feb 24, 2020 at 04:12:56PM -0800, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
>
> Convert the log clearing function to use uncached buffers like
> everything else, instead of using the raw buffer get/put functions.
> This will eventually enable us to hide them more effectively.
>
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
> libxfs/rdwr.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
>
> diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c
> index d607a565..739f4aed 100644
> --- a/libxfs/rdwr.c
> +++ b/libxfs/rdwr.c
> @@ -1413,15 +1413,13 @@ libxfs_log_clear(
> /* write out the first log record */
> ptr = dptr;
> if (btp) {
> - bp = libxfs_getbufr(btp, start, len);
> + bp = libxfs_getbufr_uncached(btp, start, len);

Any reason this isn't using the public libxfs_buf_get_uncached
function? Yes, that requires setting up the address, but it avoids
a dependency on internal helpers.

And I think we should add initializing the block, zeroing the buffer
and setting up ops into (lib)xfs_buf_get_uncached, basically moving
most of xfs_get_aghdr_buf into and improve the API eventually.