Route opens through fs_bdev_file_open_by_path() so each external device
is registered against mp->m_super, and convert the matching releases.

Signed-off-by: Christian Brauner (Amutable) <[email protected]>
---
 fs/xfs/xfs_buf.c   |  2 +-
 fs/xfs/xfs_super.c | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index 580d40a5ee57..3d3b29edb156 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1601,7 +1601,7 @@ xfs_free_buftarg(
        fs_put_dax(btp->bt_daxdev, btp->bt_mount);
        /* the main block device is closed by kill_block_super */
        if (btp->bt_bdev != btp->bt_mount->m_super->s_bdev)
-               bdev_fput(btp->bt_file);
+               fs_bdev_file_release(btp->bt_file, btp->bt_mount->m_super);
        kfree(btp);
 }
 
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index f8de44443e81..304667210695 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -400,8 +400,8 @@ xfs_blkdev_get(
        blk_mode_t              mode;
 
        mode = sb_open_mode(mp->m_super->s_flags);
-       *bdev_filep = bdev_file_open_by_path(name, mode,
-                       mp->m_super, &fs_holder_ops);
+       *bdev_filep = fs_bdev_file_open_by_path(name, mode,
+                       mp->m_super, mp->m_super);
        if (IS_ERR(*bdev_filep)) {
                error = PTR_ERR(*bdev_filep);
                *bdev_filep = NULL;
@@ -526,7 +526,7 @@ xfs_open_devices(
                mp->m_logdev_targp = mp->m_ddev_targp;
                /* Handle won't be used, drop it */
                if (logdev_file)
-                       bdev_fput(logdev_file);
+                       fs_bdev_file_release(logdev_file, mp->m_super);
        }
 
        return 0;
@@ -538,10 +538,10 @@ xfs_open_devices(
        xfs_free_buftarg(mp->m_ddev_targp);
  out_close_rtdev:
         if (rtdev_file)
-               bdev_fput(rtdev_file);
+               fs_bdev_file_release(rtdev_file, mp->m_super);
  out_close_logdev:
        if (logdev_file)
-               bdev_fput(logdev_file);
+               fs_bdev_file_release(logdev_file, mp->m_super);
        return error;
 }
 

-- 
2.47.3


Reply via email to