On Tue, Nov 09, 2021 at 09:33:01AM +0100, Christoph Hellwig wrote:
> Hide the DAX device lookup from the xfs_super.c code.
> 
> Reviewed-by: Christoph Hellwig <h...@lst.de>

This looks to be a straightforward conversion.
Reviewed-by: Darrick J. Wong <djw...@kernel.org>

--D

> ---
>  fs/xfs/xfs_buf.c   |  8 ++++----
>  fs/xfs/xfs_buf.h   |  4 ++--
>  fs/xfs/xfs_super.c | 26 +++++---------------------
>  3 files changed, 11 insertions(+), 27 deletions(-)
> 
> diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
> index 631c5a61d89b7..4d4553ffa7050 100644
> --- a/fs/xfs/xfs_buf.c
> +++ b/fs/xfs/xfs_buf.c
> @@ -1892,6 +1892,7 @@ xfs_free_buftarg(
>       list_lru_destroy(&btp->bt_lru);
>  
>       blkdev_issue_flush(btp->bt_bdev);
> +     fs_put_dax(btp->bt_daxdev);
>  
>       kmem_free(btp);
>  }
> @@ -1932,11 +1933,10 @@ xfs_setsize_buftarg_early(
>       return xfs_setsize_buftarg(btp, bdev_logical_block_size(bdev));
>  }
>  
> -xfs_buftarg_t *
> +struct xfs_buftarg *
>  xfs_alloc_buftarg(
>       struct xfs_mount        *mp,
> -     struct block_device     *bdev,
> -     struct dax_device       *dax_dev)
> +     struct block_device     *bdev)
>  {
>       xfs_buftarg_t           *btp;
>  
> @@ -1945,7 +1945,7 @@ xfs_alloc_buftarg(
>       btp->bt_mount = mp;
>       btp->bt_dev =  bdev->bd_dev;
>       btp->bt_bdev = bdev;
> -     btp->bt_daxdev = dax_dev;
> +     btp->bt_daxdev = fs_dax_get_by_bdev(bdev);
>  
>       /*
>        * Buffer IO error rate limiting. Limit it to no more than 10 messages
> diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h
> index 6b0200b8007d1..bd7f709f0d232 100644
> --- a/fs/xfs/xfs_buf.h
> +++ b/fs/xfs/xfs_buf.h
> @@ -338,8 +338,8 @@ xfs_buf_update_cksum(struct xfs_buf *bp, unsigned long 
> cksum_offset)
>  /*
>   *   Handling of buftargs.
>   */
> -extern struct xfs_buftarg *xfs_alloc_buftarg(struct xfs_mount *,
> -             struct block_device *, struct dax_device *);
> +struct xfs_buftarg *xfs_alloc_buftarg(struct xfs_mount *mp,
> +             struct block_device *bdev);
>  extern void xfs_free_buftarg(struct xfs_buftarg *);
>  extern void xfs_buftarg_wait(struct xfs_buftarg *);
>  extern void xfs_buftarg_drain(struct xfs_buftarg *);
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 3a45d5caa28d5..7262716afb215 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -391,26 +391,19 @@ STATIC void
>  xfs_close_devices(
>       struct xfs_mount        *mp)
>  {
> -     struct dax_device *dax_ddev = mp->m_ddev_targp->bt_daxdev;
> -
>       if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) {
>               struct block_device *logdev = mp->m_logdev_targp->bt_bdev;
> -             struct dax_device *dax_logdev = mp->m_logdev_targp->bt_daxdev;
>  
>               xfs_free_buftarg(mp->m_logdev_targp);
>               xfs_blkdev_put(logdev);
> -             fs_put_dax(dax_logdev);
>       }
>       if (mp->m_rtdev_targp) {
>               struct block_device *rtdev = mp->m_rtdev_targp->bt_bdev;
> -             struct dax_device *dax_rtdev = mp->m_rtdev_targp->bt_daxdev;
>  
>               xfs_free_buftarg(mp->m_rtdev_targp);
>               xfs_blkdev_put(rtdev);
> -             fs_put_dax(dax_rtdev);
>       }
>       xfs_free_buftarg(mp->m_ddev_targp);
> -     fs_put_dax(dax_ddev);
>  }
>  
>  /*
> @@ -428,8 +421,6 @@ xfs_open_devices(
>       struct xfs_mount        *mp)
>  {
>       struct block_device     *ddev = mp->m_super->s_bdev;
> -     struct dax_device       *dax_ddev = fs_dax_get_by_bdev(ddev);
> -     struct dax_device       *dax_logdev = NULL, *dax_rtdev = NULL;
>       struct block_device     *logdev = NULL, *rtdev = NULL;
>       int                     error;
>  
> @@ -439,8 +430,7 @@ xfs_open_devices(
>       if (mp->m_logname) {
>               error = xfs_blkdev_get(mp, mp->m_logname, &logdev);
>               if (error)
> -                     goto out;
> -             dax_logdev = fs_dax_get_by_bdev(logdev);
> +                     return error;
>       }
>  
>       if (mp->m_rtname) {
> @@ -454,25 +444,24 @@ xfs_open_devices(
>                       error = -EINVAL;
>                       goto out_close_rtdev;
>               }
> -             dax_rtdev = fs_dax_get_by_bdev(rtdev);
>       }
>  
>       /*
>        * Setup xfs_mount buffer target pointers
>        */
>       error = -ENOMEM;
> -     mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev, dax_ddev);
> +     mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev);
>       if (!mp->m_ddev_targp)
>               goto out_close_rtdev;
>  
>       if (rtdev) {
> -             mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev, dax_rtdev);
> +             mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev);
>               if (!mp->m_rtdev_targp)
>                       goto out_free_ddev_targ;
>       }
>  
>       if (logdev && logdev != ddev) {
> -             mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev, dax_logdev);
> +             mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev);
>               if (!mp->m_logdev_targp)
>                       goto out_free_rtdev_targ;
>       } else {
> @@ -488,14 +477,9 @@ xfs_open_devices(
>       xfs_free_buftarg(mp->m_ddev_targp);
>   out_close_rtdev:
>       xfs_blkdev_put(rtdev);
> -     fs_put_dax(dax_rtdev);
>   out_close_logdev:
> -     if (logdev && logdev != ddev) {
> +     if (logdev && logdev != ddev)
>               xfs_blkdev_put(logdev);
> -             fs_put_dax(dax_logdev);
> -     }
> - out:
> -     fs_put_dax(dax_ddev);
>       return error;
>  }
>  
> -- 
> 2.30.2
> 

Reply via email to