All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: <linux-block@vger.kernel.org>
Cc: <linux-fsdevel@vger.kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@infradead.org>, Jan Kara <jack@suse.cz>,
	target-devel@vger.kernel.org, linux-scsi@vger.kernel.org
Subject: [PATCH 16/32] scsi: target: Convert to blkdev_get_handle_by_path()
Date: Tue,  4 Jul 2023 14:21:43 +0200	[thread overview]
Message-ID: <20230704122224.16257-16-jack@suse.cz> (raw)
In-Reply-To: <20230629165206.383-1-jack@suse.cz>

Convert iblock and pscsi drivers to use blkdev_get_handle_by_path() and
pass the handle around.

CC: target-devel@vger.kernel.org
CC: linux-scsi@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
---
 drivers/target/target_core_iblock.c | 19 +++++++++++--------
 drivers/target/target_core_iblock.h |  1 +
 drivers/target/target_core_pscsi.c  | 26 +++++++++++++-------------
 drivers/target/target_core_pscsi.h  |  2 +-
 4 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index a3c5f3558a33..979b0cfbea4a 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -91,7 +91,8 @@ static int iblock_configure_device(struct se_device *dev)
 {
 	struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
 	struct request_queue *q;
-	struct block_device *bd = NULL;
+	struct bdev_handle *bdev_handle;
+	struct block_device *bd;
 	struct blk_integrity *bi;
 	blk_mode_t mode = BLK_OPEN_READ;
 	unsigned int max_write_zeroes_sectors;
@@ -116,12 +117,14 @@ static int iblock_configure_device(struct se_device *dev)
 	else
 		dev->dev_flags |= DF_READ_ONLY;
 
-	bd = blkdev_get_by_path(ib_dev->ibd_udev_path, mode, ib_dev, NULL);
-	if (IS_ERR(bd)) {
-		ret = PTR_ERR(bd);
+	bdev_handle = blkdev_get_handle_by_path(ib_dev->ibd_udev_path, mode,
+				ib_dev, NULL);
+	if (IS_ERR(bdev_handle)) {
+		ret = PTR_ERR(bdev_handle);
 		goto out_free_bioset;
 	}
-	ib_dev->ibd_bd = bd;
+	ib_dev->ibd_bdev_handle = bdev_handle;
+	ib_dev->ibd_bd = bd = bdev_handle->bdev;
 
 	q = bdev_get_queue(bd);
 
@@ -177,7 +180,7 @@ static int iblock_configure_device(struct se_device *dev)
 	return 0;
 
 out_blkdev_put:
-	blkdev_put(ib_dev->ibd_bd, ib_dev);
+	blkdev_handle_put(ib_dev->ibd_bdev_handle);
 out_free_bioset:
 	bioset_exit(&ib_dev->ibd_bio_set);
 out:
@@ -202,8 +205,8 @@ static void iblock_destroy_device(struct se_device *dev)
 {
 	struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
 
-	if (ib_dev->ibd_bd != NULL)
-		blkdev_put(ib_dev->ibd_bd, ib_dev);
+	if (ib_dev->ibd_bdev_handle)
+		blkdev_handle_put(ib_dev->ibd_bdev_handle);
 	bioset_exit(&ib_dev->ibd_bio_set);
 }
 
diff --git a/drivers/target/target_core_iblock.h b/drivers/target/target_core_iblock.h
index 8c55375d2f75..683f9a55945b 100644
--- a/drivers/target/target_core_iblock.h
+++ b/drivers/target/target_core_iblock.h
@@ -32,6 +32,7 @@ struct iblock_dev {
 	u32	ibd_flags;
 	struct bio_set	ibd_bio_set;
 	struct block_device *ibd_bd;
+	struct bdev_handle *ibd_bdev_handle;
 	bool ibd_readonly;
 	struct iblock_dev_plug *ibd_plug;
 } ____cacheline_aligned;
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
index 0d4f09693ef4..9ea2b29e95bf 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -352,7 +352,7 @@ static int pscsi_create_type_disk(struct se_device *dev, struct scsi_device *sd)
 	struct pscsi_hba_virt *phv = dev->se_hba->hba_ptr;
 	struct pscsi_dev_virt *pdv = PSCSI_DEV(dev);
 	struct Scsi_Host *sh = sd->host;
-	struct block_device *bd;
+	struct bdev_handle *bdev_handle;
 	int ret;
 
 	if (scsi_device_get(sd)) {
@@ -366,18 +366,18 @@ static int pscsi_create_type_disk(struct se_device *dev, struct scsi_device *sd)
 	 * Claim exclusive struct block_device access to struct scsi_device
 	 * for TYPE_DISK and TYPE_ZBC using supplied udev_path
 	 */
-	bd = blkdev_get_by_path(dev->udev_path, BLK_OPEN_WRITE | BLK_OPEN_READ,
-				pdv, NULL);
-	if (IS_ERR(bd)) {
-		pr_err("pSCSI: blkdev_get_by_path() failed\n");
+	bdev_handle = blkdev_get_handle_by_path(dev->udev_path,
+				BLK_OPEN_WRITE | BLK_OPEN_READ, pdv, NULL);
+	if (IS_ERR(bdev_handle)) {
+		pr_err("pSCSI: blkdev_get_handle_by_path() failed\n");
 		scsi_device_put(sd);
-		return PTR_ERR(bd);
+		return PTR_ERR(bdev_handle);
 	}
-	pdv->pdv_bd = bd;
+	pdv->pdv_bdev_handle = bdev_handle;
 
 	ret = pscsi_add_device_to_list(dev, sd);
 	if (ret) {
-		blkdev_put(pdv->pdv_bd, pdv);
+		blkdev_handle_put(bdev_handle);
 		scsi_device_put(sd);
 		return ret;
 	}
@@ -564,9 +564,9 @@ static void pscsi_destroy_device(struct se_device *dev)
 		 * from pscsi_create_type_disk()
 		 */
 		if ((sd->type == TYPE_DISK || sd->type == TYPE_ZBC) &&
-		    pdv->pdv_bd) {
-			blkdev_put(pdv->pdv_bd, pdv);
-			pdv->pdv_bd = NULL;
+		    pdv->pdv_bdev_handle) {
+			blkdev_handle_put(pdv->pdv_bdev_handle);
+			pdv->pdv_bdev_handle = NULL;
 		}
 		/*
 		 * For HBA mode PHV_LLD_SCSI_HOST_NO, release the reference
@@ -994,8 +994,8 @@ static sector_t pscsi_get_blocks(struct se_device *dev)
 {
 	struct pscsi_dev_virt *pdv = PSCSI_DEV(dev);
 
-	if (pdv->pdv_bd)
-		return bdev_nr_sectors(pdv->pdv_bd);
+	if (pdv->pdv_bdev_handle)
+		return bdev_nr_sectors(pdv->pdv_bdev_handle->bdev);
 	return 0;
 }
 
diff --git a/drivers/target/target_core_pscsi.h b/drivers/target/target_core_pscsi.h
index 23d9a6e340d4..b0a3ef136592 100644
--- a/drivers/target/target_core_pscsi.h
+++ b/drivers/target/target_core_pscsi.h
@@ -37,7 +37,7 @@ struct pscsi_dev_virt {
 	int	pdv_channel_id;
 	int	pdv_target_id;
 	int	pdv_lun_id;
-	struct block_device *pdv_bd;
+	struct bdev_handle *pdv_bdev_handle;
 	struct scsi_device *pdv_sd;
 	struct Scsi_Host *pdv_lld_host;
 } ____cacheline_aligned;
-- 
2.35.3


  parent reply	other threads:[~2023-07-04 12:23 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-04 12:21 [PATCH RFC 0/32] block: Make blkdev_get_by_*() return handle Jan Kara
2023-07-04 12:21 ` Jan Kara
2023-07-04 12:21 ` [dm-devel] " Jan Kara
2023-07-04 12:21 ` [f2fs-dev] " Jan Kara
2023-07-04 12:21 ` Jan Kara
2023-07-04 12:21 ` Jan Kara
2023-07-04 12:21 ` [PATCH 01/32] block: Provide blkdev_get_handle_* functions Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21   ` [dm-devel] " Jan Kara
2023-07-04 12:21   ` [f2fs-dev] " Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:43   ` Matthew Wilcox
2023-07-04 12:43     ` Matthew Wilcox
2023-07-04 12:43     ` Matthew Wilcox
2023-07-04 12:43     ` [dm-devel] " Matthew Wilcox
2023-07-04 12:43     ` Matthew Wilcox
2023-07-04 12:43     ` [f2fs-dev] " Matthew Wilcox
2023-07-04 13:03     ` Jan Kara
2023-07-04 13:03       ` Jan Kara
2023-07-04 13:03       ` [dm-devel] " Jan Kara
2023-07-04 13:03       ` Jan Kara
2023-07-04 13:03       ` [f2fs-dev] " Jan Kara
2023-07-04 13:03       ` Jan Kara
2023-07-04 14:06   ` Bart Van Assche
2023-07-04 14:06     ` Bart Van Assche
2023-07-04 14:06     ` Bart Van Assche
2023-07-04 14:06     ` [dm-devel] " Bart Van Assche
2023-07-04 14:06     ` Bart Van Assche
2023-07-04 14:06     ` [f2fs-dev] " Bart Van Assche
2023-07-04 16:14     ` Matthew Wilcox
2023-07-04 16:14       ` Matthew Wilcox
2023-07-04 16:14       ` [dm-devel] " Matthew Wilcox
2023-07-04 16:14       ` Matthew Wilcox
2023-07-04 16:14       ` Matthew Wilcox
2023-07-04 16:14       ` [f2fs-dev] " Matthew Wilcox
2023-07-05 15:19       ` Bart Van Assche
2023-07-05 15:19         ` Bart Van Assche
2023-07-05 15:19         ` [dm-devel] " Bart Van Assche
2023-07-05 15:19         ` Bart Van Assche
2023-07-05 15:19         ` Bart Van Assche
2023-07-05 15:19         ` [f2fs-dev] " Bart Van Assche
2023-07-05 16:12     ` Jan Kara
2023-07-05 16:12       ` Jan Kara
2023-07-05 16:12       ` [dm-devel] " Jan Kara
2023-07-05 16:12       ` Jan Kara
2023-07-05 16:12       ` Jan Kara
2023-07-05 16:12       ` [f2fs-dev] " Jan Kara
2023-07-04 16:28   ` Keith Busch
2023-07-04 16:28     ` Keith Busch
2023-07-04 16:28     ` Keith Busch
2023-07-04 16:28     ` [dm-devel] " Keith Busch
2023-07-04 16:28     ` Keith Busch
2023-07-04 16:28     ` [f2fs-dev] " Keith Busch
2023-07-05 10:21     ` Jan Kara
2023-07-05 10:21       ` Jan Kara
2023-07-05 10:21       ` [dm-devel] " Jan Kara
2023-07-05 10:21       ` Jan Kara
2023-07-05 10:21       ` Jan Kara
2023-07-05 10:21       ` [f2fs-dev] " Jan Kara
2023-07-06 15:38   ` Christoph Hellwig
2023-07-06 15:38     ` Christoph Hellwig
2023-07-06 15:38     ` Christoph Hellwig
2023-07-06 15:38     ` [dm-devel] " Christoph Hellwig
2023-07-06 15:38     ` Christoph Hellwig
2023-07-06 15:38     ` [f2fs-dev] " Christoph Hellwig
2023-07-06 16:14     ` Jan Kara
2023-07-06 16:14       ` Jan Kara
2023-07-06 16:14       ` [dm-devel] " Jan Kara
2023-07-06 16:14       ` Jan Kara
2023-07-06 16:14       ` Jan Kara
2023-07-06 16:14       ` [f2fs-dev] " Jan Kara
2023-07-07 11:28       ` Christoph Hellwig
2023-07-07 11:28         ` Christoph Hellwig
2023-07-07 11:28         ` Christoph Hellwig
2023-07-07 11:28         ` [dm-devel] " Christoph Hellwig
2023-07-07 11:28         ` Christoph Hellwig
2023-07-07 11:28         ` [f2fs-dev] " Christoph Hellwig
2023-07-07 12:24         ` Jan Kara
2023-07-07 12:24           ` Jan Kara
2023-07-07 12:24           ` [dm-devel] " Jan Kara
2023-07-07 12:24           ` Jan Kara
2023-07-07 12:24           ` Jan Kara
2023-07-07 12:24           ` [f2fs-dev] " Jan Kara
2023-07-12 13:39     ` Haris Iqbal
2023-07-12 13:39       ` Haris Iqbal
2023-07-12 13:39       ` [dm-devel] " Haris Iqbal
2023-07-12 13:39       ` Haris Iqbal via Linux-erofs
2023-07-12 16:06     ` Haris Iqbal
2023-07-12 16:06       ` Haris Iqbal
2023-07-12 16:06       ` [dm-devel] " Haris Iqbal
2023-07-12 16:06       ` Haris Iqbal via Linux-erofs
2023-07-12 16:06       ` Haris Iqbal
2023-07-12 16:06       ` [f2fs-dev] " Haris Iqbal via Linux-f2fs-devel
2023-07-31 10:50       ` Jan Kara
2023-07-31 10:50         ` Jan Kara
2023-07-31 10:50         ` [dm-devel] " Jan Kara
2023-07-31 10:50         ` Jan Kara
2023-07-31 10:50         ` Jan Kara
2023-07-31 10:50         ` [f2fs-dev] " Jan Kara
2023-07-31 11:13         ` Christoph Hellwig
2023-07-31 11:13           ` Christoph Hellwig
2023-07-31 11:13           ` Christoph Hellwig
2023-07-31 11:13           ` [dm-devel] " Christoph Hellwig
2023-07-31 11:13           ` [f2fs-dev] " Christoph Hellwig
2023-07-31 11:13           ` Christoph Hellwig
2023-07-04 12:21 ` [PATCH 02/32] block: Use file->f_flags for determining exclusive opens in file_to_blk_mode() Jan Kara
2023-07-06 15:35   ` Christoph Hellwig
2023-07-06 16:35     ` Jan Kara
2023-07-07 11:29       ` Christoph Hellwig
2023-07-04 12:21 ` [PATCH 03/32] block: Use blkdev_get_handle_by_dev() in blkdev_open() Jan Kara
2023-07-05  5:05   ` Kanchan Joshi
2023-07-05 10:17     ` Jan Kara
2023-07-04 12:21 ` [PATCH 04/32] block: Use blkdev_get_handle_by_dev() in disk_scan_partitions() and blkdev_bszset() Jan Kara
2023-07-04 12:21 ` [PATCH 05/32] drdb: Convert to use blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21 ` [PATCH 06/32] pktcdvd: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21 ` [PATCH 07/32] rnbd-srv: Convert to use blkdev_get_handle_by_path() Jan Kara
2023-07-12 15:54   ` Haris Iqbal
2023-07-04 12:21 ` [PATCH 08/32] xen/blkback: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21 ` [PATCH 09/32] zram: Convert to use blkdev_get_handle_by_dev() Jan Kara
2023-07-05  0:52   ` Sergey Senozhatsky
2023-07-04 12:21 ` [PATCH 10/32] bcache: Convert to blkdev_get_handle_by_path() Jan Kara
2023-07-04 13:06   ` Coly Li
2023-07-04 12:21 ` [PATCH 11/32] dm: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21   ` [dm-devel] " Jan Kara
2023-07-04 12:21 ` [PATCH 12/32] md: " Jan Kara
2023-07-04 12:21 ` [PATCH 13/32] mtd: block2mtd: Convert to blkdev_get_handle_by_dev/path() Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21 ` [PATCH 14/32] nvmet: Convert to blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21 ` [PATCH 15/32] s390/dasd: " Jan Kara
2023-07-04 12:21 ` Jan Kara [this message]
2023-07-04 12:21 ` [PATCH 17/32] PM: hibernate: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21 ` [PATCH 18/32] PM: hibernate: Drop unused snapshot_test argument Jan Kara
2023-07-04 12:21 ` [PATCH 19/32] mm/swap: Convert to use blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21 ` [PATCH 20/32] fs: Convert to blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21 ` [PATCH 21/32] btrfs: " Jan Kara
2023-07-04 12:21 ` [PATCH 22/32] erofs: Convert to use blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-06 15:16   ` Gao Xiang
2023-07-06 15:16     ` Gao Xiang
2023-07-04 12:21 ` [PATCH 23/32] ext4: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-04 12:21 ` [PATCH 24/32] f2fs: Convert to blkdev_get_handle_by_dev/path() Jan Kara
2023-07-04 12:21   ` [f2fs-dev] " Jan Kara
2023-07-04 12:21 ` [PATCH 25/32] jfs: Convert to blkdev_get_handle_by_dev() Jan Kara
2023-07-05 15:16   ` Dave Kleikamp
2023-07-04 12:21 ` [PATCH 26/32] nfs/blocklayout: Convert to use blkdev_get_handle_by_dev/path() Jan Kara
2023-07-04 12:21 ` [PATCH 27/32] nilfs2: Convert to use blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-21  5:22   ` Ryusuke Konishi
2023-07-21  5:22     ` Ryusuke Konishi
2023-07-04 12:21 ` [PATCH 28/32] ocfs2: Convert to use blkdev_get_handle_by_dev() Jan Kara
2023-07-05 10:55   ` Joseph Qi
2023-07-04 12:21 ` [PATCH 29/32] reiserfs: Convert to blkdev_get_handle_by_dev/path() Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21 ` [PATCH 30/32] xfs: Convert to blkdev_get_handle_by_path() Jan Kara
2023-07-04 12:21 ` [PATCH 31/32] block: Remove blkdev_get_by_*() functions Jan Kara
2023-07-04 12:21 ` [PATCH 32/32] block: Rename blkdev_get_handle_by_*() and blkdev_handle_put() Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21   ` [dm-devel] " Jan Kara
2023-07-04 12:21   ` [f2fs-dev] " Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-04 12:21   ` Jan Kara
2023-07-06 14:54 ` [PATCH RFC 0/32] block: Make blkdev_get_by_*() return handle Christoph Hellwig
2023-07-06 14:54   ` Christoph Hellwig
2023-07-06 14:54   ` Christoph Hellwig
2023-07-06 14:54   ` [dm-devel] " Christoph Hellwig
2023-07-06 14:54   ` [f2fs-dev] " Christoph Hellwig
2023-07-06 14:54   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230704122224.16257-16-jack@suse.cz \
    --to=jack@suse.cz \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=target-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.