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>,
	Minchan Kim <minchan@kernel.org>,
	Sergey Senozhatsky <senozhatsky@chromium.org>
Subject: [PATCH 09/32] zram: Convert to use blkdev_get_handle_by_dev()
Date: Tue,  4 Jul 2023 14:21:36 +0200	[thread overview]
Message-ID: <20230704122224.16257-9-jack@suse.cz> (raw)
In-Reply-To: <20230629165206.383-1-jack@suse.cz>

Convert zram to use blkdev_get_handle_by_dev() and pass the handle
around.

CC: Minchan Kim <minchan@kernel.org>
CC: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Jan Kara <jack@suse.cz>
---
 drivers/block/zram/zram_drv.c | 31 ++++++++++++++-----------------
 drivers/block/zram/zram_drv.h |  2 +-
 2 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 5676e6dd5b16..987e4885956e 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -414,17 +414,14 @@ static ssize_t writeback_limit_show(struct device *dev,
 
 static void reset_bdev(struct zram *zram)
 {
-	struct block_device *bdev;
-
 	if (!zram->backing_dev)
 		return;
 
-	bdev = zram->bdev;
-	blkdev_put(bdev, zram);
+	blkdev_handle_put(zram->bdev_handle);
 	/* hope filp_close flush all of IO */
 	filp_close(zram->backing_dev, NULL);
 	zram->backing_dev = NULL;
-	zram->bdev = NULL;
+	zram->bdev_handle = NULL;
 	zram->disk->fops = &zram_devops;
 	kvfree(zram->bitmap);
 	zram->bitmap = NULL;
@@ -470,7 +467,7 @@ static ssize_t backing_dev_store(struct device *dev,
 	struct address_space *mapping;
 	unsigned int bitmap_sz;
 	unsigned long nr_pages, *bitmap = NULL;
-	struct block_device *bdev = NULL;
+	struct bdev_handle *bdev_handle = NULL;
 	int err;
 	struct zram *zram = dev_to_zram(dev);
 
@@ -507,11 +504,11 @@ static ssize_t backing_dev_store(struct device *dev,
 		goto out;
 	}
 
-	bdev = blkdev_get_by_dev(inode->i_rdev, BLK_OPEN_READ | BLK_OPEN_WRITE,
-				 zram, NULL);
-	if (IS_ERR(bdev)) {
-		err = PTR_ERR(bdev);
-		bdev = NULL;
+	bdev_handle = blkdev_get_handle_by_dev(inode->i_rdev,
+				BLK_OPEN_READ | BLK_OPEN_WRITE, zram, NULL);
+	if (IS_ERR(bdev_handle)) {
+		err = PTR_ERR(bdev_handle);
+		bdev_handle = NULL;
 		goto out;
 	}
 
@@ -525,7 +522,7 @@ static ssize_t backing_dev_store(struct device *dev,
 
 	reset_bdev(zram);
 
-	zram->bdev = bdev;
+	zram->bdev_handle = bdev_handle;
 	zram->backing_dev = backing_dev;
 	zram->bitmap = bitmap;
 	zram->nr_pages = nr_pages;
@@ -538,8 +535,8 @@ static ssize_t backing_dev_store(struct device *dev,
 out:
 	kvfree(bitmap);
 
-	if (bdev)
-		blkdev_put(bdev, zram);
+	if (bdev_handle)
+		blkdev_handle_put(bdev_handle);
 
 	if (backing_dev)
 		filp_close(backing_dev, NULL);
@@ -581,7 +578,7 @@ static void read_from_bdev_async(struct zram *zram, struct page *page,
 {
 	struct bio *bio;
 
-	bio = bio_alloc(zram->bdev, 1, parent->bi_opf, GFP_NOIO);
+	bio = bio_alloc(zram->bdev_handle->bdev, 1, parent->bi_opf, GFP_NOIO);
 	bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
 	__bio_add_page(bio, page, PAGE_SIZE, 0);
 	bio_chain(bio, parent);
@@ -697,7 +694,7 @@ static ssize_t writeback_store(struct device *dev,
 			continue;
 		}
 
-		bio_init(&bio, zram->bdev, &bio_vec, 1,
+		bio_init(&bio, zram->bdev_handle->bdev, &bio_vec, 1,
 			 REQ_OP_WRITE | REQ_SYNC);
 		bio.bi_iter.bi_sector = blk_idx * (PAGE_SIZE >> 9);
 		__bio_add_page(&bio, page, PAGE_SIZE, 0);
@@ -779,7 +776,7 @@ static void zram_sync_read(struct work_struct *work)
 	struct bio_vec bv;
 	struct bio bio;
 
-	bio_init(&bio, zw->zram->bdev, &bv, 1, REQ_OP_READ);
+	bio_init(&bio, zw->zram->bdev_handle->bdev, &bv, 1, REQ_OP_READ);
 	bio.bi_iter.bi_sector = zw->entry * (PAGE_SIZE >> 9);
 	__bio_add_page(&bio, zw->page, PAGE_SIZE, 0);
 	zw->error = submit_bio_wait(&bio);
diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h
index ca7a15bd4845..d090753f97be 100644
--- a/drivers/block/zram/zram_drv.h
+++ b/drivers/block/zram/zram_drv.h
@@ -132,7 +132,7 @@ struct zram {
 	spinlock_t wb_limit_lock;
 	bool wb_limit_enable;
 	u64 bd_wb_limit;
-	struct block_device *bdev;
+	struct bdev_handle *bdev_handle;
 	unsigned long *bitmap;
 	unsigned long nr_pages;
 #endif
-- 
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 ` Jan Kara [this message]
2023-07-05  0:52   ` [PATCH 09/32] zram: Convert to use blkdev_get_handle_by_dev() 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 ` [PATCH 16/32] scsi: target: " Jan Kara
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-9-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=minchan@kernel.org \
    --cc=senozhatsky@chromium.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.