]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs use fs_holder_ops for the log and RT devices
authorChristoph Hellwig <hch@lst.de>
Wed, 2 Aug 2023 15:41:31 +0000 (17:41 +0200)
committerChristian Brauner <brauner@kernel.org>
Fri, 11 Aug 2023 11:15:04 +0000 (13:15 +0200)
Use the generic fs_holder_ops to shut down the file system when the
log or RT device goes away instead of duplicating the logic.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Message-Id: <20230802154131.2221419-13-hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/xfs/xfs_super.c

index 97ef41acb03d11b2994fd29e40a66d413a4f9806..8fee152924994bd8c708fb981f8280cb113a7951 100644 (file)
@@ -377,17 +377,6 @@ disable_dax:
        return 0;
 }
 
-static void
-xfs_bdev_mark_dead(
-       struct block_device     *bdev)
-{
-       xfs_force_shutdown(bdev->bd_holder, SHUTDOWN_DEVICE_REMOVED);
-}
-
-static const struct blk_holder_ops xfs_holder_ops = {
-       .mark_dead              = xfs_bdev_mark_dead,
-};
-
 STATIC int
 xfs_blkdev_get(
        xfs_mount_t             *mp,
@@ -396,8 +385,8 @@ xfs_blkdev_get(
 {
        int                     error = 0;
 
-       *bdevp = blkdev_get_by_path(name, BLK_OPEN_READ | BLK_OPEN_WRITE, mp,
-                                   &xfs_holder_ops);
+       *bdevp = blkdev_get_by_path(name, BLK_OPEN_READ | BLK_OPEN_WRITE,
+                                   mp->m_super, &fs_holder_ops);
        if (IS_ERR(*bdevp)) {
                error = PTR_ERR(*bdevp);
                xfs_warn(mp, "Invalid device [%s], error=%d", name, error);
@@ -529,10 +518,10 @@ out_relock:
        xfs_free_buftarg(mp->m_ddev_targp);
  out_close_rtdev:
         if (rtdev)
-                blkdev_put(rtdev, mp);
+                blkdev_put(rtdev, sb);
  out_close_logdev:
        if (logdev && logdev != ddev)
-               blkdev_put(logdev, mp);
+               blkdev_put(logdev, sb);
        goto out_relock;
 }