linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/37] block: introduce bio_init_fields()
@ 2021-01-19  5:05 Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 01/37] block: introduce bio_init_fields() helper Chaitanya Kulkarni
                   ` (40 more replies)
  0 siblings, 41 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 4208 bytes --]

Hi,

This is a *compile only RFC* which adds a generic helper to initialize
the various fields of the bio that is repeated all the places in
file-systems, block layer, and drivers.

The new helper allows callers to initialize various members such as
bdev, sector, private, end io callback, io priority, and write hints.

The objective of this RFC is to only start a discussion, this it not 
completely tested at all.                                                                                                            
Following diff shows code level benefits of this helper :-
 38 files changed, 124 insertions(+), 236 deletions(-)

-ck

Chaitanya Kulkarni (37):
  block: introduce bio_init_fields() helper
  fs: use bio_init_fields in block_dev
  btrfs: use bio_init_fields in disk-io
  btrfs: use bio_init_fields in volumes
  ext4: use bio_init_fields in page_io
  gfs2: use bio_init_fields in lops
  gfs2: use bio_init_fields in meta_io
  gfs2: use bio_init_fields in ops_fstype
  iomap: use bio_init_fields in buffered-io
  iomap: use bio_init_fields in direct-io
  jfs: use bio_init_fields in logmgr
  zonefs: use bio_init_fields in append
  drdb: use bio_init_fields in actlog
  drdb: use bio_init_fields in bitmap
  drdb: use bio_init_fields in receiver
  floppy: use bio_init_fields
  pktcdvd: use bio_init_fields
  bcache: use bio_init_fields in journal
  bcache: use bio_init_fields in super
  bcache: use bio_init_fields in writeback
  dm-bufio: use bio_init_fields
  dm-crypt: use bio_init_fields
  dm-zoned: use bio_init_fields metadata
  dm-zoned: use bio_init_fields target
  dm-zoned: use bio_init_fields
  dm log writes: use bio_init_fields
  nvmet: use bio_init_fields in bdev-ns
  target: use bio_init_fields in iblock
  btrfs: use bio_init_fields in scrub
  fs: use bio_init_fields in buffer
  eros: use bio_init_fields in data
  eros: use bio_init_fields in zdata
  jfs: use bio_init_fields in metadata
  nfs: use bio_init_fields in blocklayout
  ocfs: use bio_init_fields in heartbeat
  xfs: use bio_init_fields in xfs_buf
  xfs: use bio_init_fields in xfs_log

 block/blk-lib.c                     | 13 +++++--------
 drivers/block/drbd/drbd_actlog.c    |  5 +----
 drivers/block/drbd/drbd_bitmap.c    |  5 +----
 drivers/block/drbd/drbd_receiver.c  | 11 +++--------
 drivers/block/floppy.c              |  5 +----
 drivers/block/pktcdvd.c             | 12 ++++--------
 drivers/md/bcache/journal.c         | 21 ++++++++-------------
 drivers/md/bcache/super.c           | 19 +++++--------------
 drivers/md/bcache/writeback.c       | 14 ++++++--------
 drivers/md/dm-bufio.c               |  5 +----
 drivers/md/dm-crypt.c               |  4 +---
 drivers/md/dm-log-writes.c          | 21 ++++++---------------
 drivers/md/dm-zoned-metadata.c      | 15 +++++----------
 drivers/md/dm-zoned-target.c        |  9 +++------
 drivers/md/md.c                     |  6 ++----
 drivers/nvme/target/io-cmd-bdev.c   |  4 +---
 drivers/target/target_core_iblock.c | 11 +++--------
 fs/block_dev.c                      | 17 +++++------------
 fs/btrfs/disk-io.c                  | 11 ++++-------
 fs/btrfs/scrub.c                    |  6 ++----
 fs/btrfs/volumes.c                  |  4 +---
 fs/buffer.c                         |  7 ++-----
 fs/erofs/data.c                     |  6 ++----
 fs/erofs/zdata.c                    |  9 +++------
 fs/ext4/page-io.c                   |  6 ++----
 fs/gfs2/lops.c                      |  6 ++----
 fs/gfs2/meta_io.c                   |  5 ++---
 fs/gfs2/ops_fstype.c                |  7 ++-----
 fs/iomap/buffered-io.c              |  5 ++---
 fs/iomap/direct-io.c                | 15 +++++----------
 fs/jfs/jfs_logmgr.c                 | 16 ++++------------
 fs/jfs/jfs_metapage.c               | 16 +++++++---------
 fs/nfs/blocklayout/blocklayout.c    |  8 ++------
 fs/ocfs2/cluster/heartbeat.c        |  4 +---
 fs/xfs/xfs_buf.c                    |  6 ++----
 fs/xfs/xfs_log.c                    |  6 ++----
 fs/zonefs/super.c                   |  7 +++----
 include/linux/bio.h                 | 13 +++++++++++++
 38 files changed, 124 insertions(+), 236 deletions(-)

-- 
2.22.1


^ permalink raw reply	[flat|nested] 44+ messages in thread

* [RFC PATCH 01/37] block: introduce bio_init_fields() helper
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
@ 2021-01-19  5:05 ` Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 02/37] fs: use bio_init_fields in block_dev Chaitanya Kulkarni
                   ` (39 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

There are several places in the file-system, block layer, device drivers
where struct bio members such as bdev, sector, private, end io callback,
io priority, write hints are initialized where we can use a helper
function.

This pach introduces a helper function which we use in the block lyaer
code. Subsequent patches use this function to reduce repeated code.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 block/blk-lib.c     | 13 +++++--------
 include/linux/bio.h | 13 +++++++++++++
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/block/blk-lib.c b/block/blk-lib.c
index 752f9c722062..5ee488c1bcc6 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -95,8 +95,7 @@ int __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
 		WARN_ON_ONCE((req_sects << 9) > UINT_MAX);
 
 		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
+		bio_init_fields(bio, bdev, sector, NULL, NULL, 0, 0);
 		bio_set_op_attrs(bio, op, 0);
 
 		bio->bi_iter.bi_size = req_sects << 9;
@@ -189,8 +188,7 @@ static int __blkdev_issue_write_same(struct block_device *bdev, sector_t sector,
 
 	while (nr_sects) {
 		bio = blk_next_bio(bio, 1, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
+		bio_init_fields(bio, bdev, sector, NULL, NULL, 0, 0);
 		bio->bi_vcnt = 1;
 		bio->bi_io_vec->bv_page = page;
 		bio->bi_io_vec->bv_offset = 0;
@@ -265,8 +263,7 @@ static int __blkdev_issue_write_zeroes(struct block_device *bdev,
 
 	while (nr_sects) {
 		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
+		bio_init_fields(bio, bdev, sector, NULL, NULL, 0, 0);
 		bio->bi_opf = REQ_OP_WRITE_ZEROES;
 		if (flags & BLKDEV_ZERO_NOUNMAP)
 			bio->bi_opf |= REQ_NOUNMAP;
@@ -317,8 +314,8 @@ static int __blkdev_issue_zero_pages(struct block_device *bdev,
 	while (nr_sects != 0) {
 		bio = blk_next_bio(bio, __blkdev_sectors_to_bio_pages(nr_sects),
 				   gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
+		bio_init_fields(bio, bdev, sector, NULL, NULL, 0, 0);
+
 		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		while (nr_sects != 0) {
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 1edda614f7ce..fbeaa5e42a5d 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -820,4 +820,17 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
 		bio->bi_opf |= REQ_NOWAIT;
 }
 
+static inline void bio_init_fields(struct bio *bio, struct block_device *bdev,
+				   sector_t sect, void *priv,
+				   bio_end_io_t *end_io,
+				   unsigned short prio, unsigned short whint)
+{
+	bio_set_dev(bio, bdev);
+	bio->bi_iter.bi_sector = sect;
+	bio->bi_private = priv;
+	bio->bi_end_io = end_io;
+	bio->bi_ioprio = prio;
+	bio->bi_write_hint = whint;
+}
+
 #endif /* __LINUX_BIO_H */
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 02/37] fs: use bio_init_fields in block_dev
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 01/37] block: introduce bio_init_fields() helper Chaitanya Kulkarni
@ 2021-01-19  5:05 ` Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 03/37] btrfs: use bio_init_fields in disk-io Chaitanya Kulkarni
                   ` (38 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/block_dev.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/fs/block_dev.c b/fs/block_dev.c
index 3e5b02f6606c..44b992976ee5 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -239,12 +239,9 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter,
 	}
 
 	bio_init(&bio, vecs, nr_pages);
-	bio_set_dev(&bio, bdev);
-	bio.bi_iter.bi_sector = pos >> 9;
-	bio.bi_write_hint = iocb->ki_hint;
-	bio.bi_private = current;
-	bio.bi_end_io = blkdev_bio_end_io_simple;
-	bio.bi_ioprio = iocb->ki_ioprio;
+	bio_init_fields(&bio, bdev, pos >> 9, current, blkdev_bio_end_io_simple,
+			iocb->ki_ioprio, iocb->ki_hint);
+
 
 	ret = bio_iov_iter_get_pages(&bio, iter);
 	if (unlikely(ret))
@@ -390,12 +387,8 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
 		blk_start_plug(&plug);
 
 	for (;;) {
-		bio_set_dev(bio, bdev);
-		bio->bi_iter.bi_sector = pos >> 9;
-		bio->bi_write_hint = iocb->ki_hint;
-		bio->bi_private = dio;
-		bio->bi_end_io = blkdev_bio_end_io;
-		bio->bi_ioprio = iocb->ki_ioprio;
+		bio_init_fields(bio, bdev, pos >> 9, dio, blkdev_bio_end_io,
+				iocb->ki_ioprio, iocb->ki_hint);
 
 		ret = bio_iov_iter_get_pages(bio, iter);
 		if (unlikely(ret)) {
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 03/37] btrfs: use bio_init_fields in disk-io
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 01/37] block: introduce bio_init_fields() helper Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 02/37] fs: use bio_init_fields in block_dev Chaitanya Kulkarni
@ 2021-01-19  5:05 ` Chaitanya Kulkarni
  2021-01-19  5:05 ` [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes Chaitanya Kulkarni
                   ` (37 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/btrfs/disk-io.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 765deefda92b..9a65432fc5e9 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3637,10 +3637,8 @@ static int write_dev_supers(struct btrfs_device *device,
 		 * checking.
 		 */
 		bio = bio_alloc(GFP_NOFS, 1);
-		bio_set_dev(bio, device->bdev);
-		bio->bi_iter.bi_sector = bytenr >> SECTOR_SHIFT;
-		bio->bi_private = device;
-		bio->bi_end_io = btrfs_end_super_write;
+		bio_init_fields(bio, device->bdev, bytenr >> SECTOR_SHIFT,
+				device, btrfs_end_super_write, 0, 0);
 		__bio_add_page(bio, page, BTRFS_SUPER_INFO_SIZE,
 			       offset_in_page(bytenr));
 
@@ -3748,11 +3746,10 @@ static void write_dev_flush(struct btrfs_device *device)
 		return;
 
 	bio_reset(bio);
-	bio->bi_end_io = btrfs_end_empty_barrier;
-	bio_set_dev(bio, device->bdev);
 	bio->bi_opf = REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH;
 	init_completion(&device->flush_wait);
-	bio->bi_private = &device->flush_wait;
+	bio_init_fields(bio, device->bdev, 0, &device->flush_wait,
+			btrfs_end_empty_barrier, 0, 0);
 
 	btrfsic_submit_bio(bio);
 	set_bit(BTRFS_DEV_STATE_FLUSH_SENT, &device->dev_state);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (2 preceding siblings ...)
  2021-01-19  5:05 ` [RFC PATCH 03/37] btrfs: use bio_init_fields in disk-io Chaitanya Kulkarni
@ 2021-01-19  5:05 ` Chaitanya Kulkarni
  2021-01-19 13:52   ` Nikolay Borisov
  2021-01-19  5:05 ` [RFC PATCH 05/37] ext4: use bio_init_fields in page_io Chaitanya Kulkarni
                   ` (36 subsequent siblings)
  40 siblings, 1 reply; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/btrfs/volumes.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index ee086fc56c30..836167212252 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -6371,14 +6371,12 @@ static void submit_stripe_bio(struct btrfs_bio *bbio, struct bio *bio,
 
 	bio->bi_private = bbio;
 	btrfs_io_bio(bio)->device = dev;
-	bio->bi_end_io = btrfs_end_bio;
-	bio->bi_iter.bi_sector = physical >> 9;
+	bio_init_fields(bio, dev->bdev, physical >> 9, bbio, btrfs_end_bio, 0, 0);
 	btrfs_debug_in_rcu(fs_info,
 	"btrfs_map_bio: rw %d 0x%x, sector=%llu, dev=%lu (%s id %llu), size=%u",
 		bio_op(bio), bio->bi_opf, bio->bi_iter.bi_sector,
 		(unsigned long)dev->bdev->bd_dev, rcu_str_deref(dev->name),
 		dev->devid, bio->bi_iter.bi_size);
-	bio_set_dev(bio, dev->bdev);
 
 	btrfs_bio_counter_inc_noblocked(fs_info);
 
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 05/37] ext4: use bio_init_fields in page_io
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (3 preceding siblings ...)
  2021-01-19  5:05 ` [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes Chaitanya Kulkarni
@ 2021-01-19  5:05 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 06/37] gfs2: use bio_init_fields in lops Chaitanya Kulkarni
                   ` (35 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:05 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/ext4/page-io.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 03a44a0de86a..53a79a7aac15 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -400,10 +400,8 @@ static void io_submit_init_bio(struct ext4_io_submit *io,
 	 */
 	bio = bio_alloc(GFP_NOIO, BIO_MAX_PAGES);
 	fscrypt_set_bio_crypt_ctx_bh(bio, bh, GFP_NOIO);
-	bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9);
-	bio_set_dev(bio, bh->b_bdev);
-	bio->bi_end_io = ext4_end_bio;
-	bio->bi_private = ext4_get_io_end(io->io_end);
+	bio_init_fields(bio, bh->b_bdev, bh->b_blocknr * (bh->b_size >> 9),
+			ext4_get_io_end(io->io_end), ext4_end_bio, 0, 0);
 	io->io_bio = bio;
 	io->io_next_block = bh->b_blocknr;
 	wbc_init_bio(io->io_wbc, bio);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 06/37] gfs2: use bio_init_fields in lops
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (4 preceding siblings ...)
  2021-01-19  5:05 ` [RFC PATCH 05/37] ext4: use bio_init_fields in page_io Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 07/37] gfs2: use bio_init_fields in meta_io Chaitanya Kulkarni
                   ` (34 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/gfs2/lops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 3922b26264f5..9f8a9757b086 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -264,10 +264,8 @@ static struct bio *gfs2_log_alloc_bio(struct gfs2_sbd *sdp, u64 blkno,
 	struct super_block *sb = sdp->sd_vfs;
 	struct bio *bio = bio_alloc(GFP_NOIO, BIO_MAX_PAGES);
 
-	bio->bi_iter.bi_sector = blkno << sdp->sd_fsb2bb_shift;
-	bio_set_dev(bio, sb->s_bdev);
-	bio->bi_end_io = end_io;
-	bio->bi_private = sdp;
+	bio_init_fields(bio, sb->s_bdev, blkno << sdp->sd_fsb2bb_shift,
+			sdp, end_io, 0, 0);
 
 	return bio;
 }
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 07/37] gfs2: use bio_init_fields in meta_io
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (5 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 06/37] gfs2: use bio_init_fields in lops Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 08/37] gfs2: use bio_init_fields in ops_fstype Chaitanya Kulkarni
                   ` (33 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/gfs2/meta_io.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index 2db573e31f78..822489b10aec 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -217,8 +217,8 @@ static void gfs2_submit_bhs(int op, int op_flags, struct buffer_head *bhs[],
 		struct bio *bio;
 
 		bio = bio_alloc(GFP_NOIO, num);
-		bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9);
-		bio_set_dev(bio, bh->b_bdev);
+		bio_init_fields(bio, bh->b_bdev, bh->b_blocknr * (bh->b_size >> 9), NULL,
+				gfs2_meta_read_endio, 0, 0);
 		while (num > 0) {
 			bh = *bhs;
 			if (!bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh))) {
@@ -228,7 +228,6 @@ static void gfs2_submit_bhs(int op, int op_flags, struct buffer_head *bhs[],
 			bhs++;
 			num--;
 		}
-		bio->bi_end_io = gfs2_meta_read_endio;
 		bio_set_op_attrs(bio, op, op_flags);
 		submit_bio(bio);
 	}
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 08/37] gfs2: use bio_init_fields in ops_fstype
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (6 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 07/37] gfs2: use bio_init_fields in meta_io Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 09/37] iomap: use bio_init_fields in buffered-io Chaitanya Kulkarni
                   ` (32 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/gfs2/ops_fstype.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 61fce59cb4d3..32506d5615f4 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -255,12 +255,9 @@ static int gfs2_read_super(struct gfs2_sbd *sdp, sector_t sector, int silent)
 	lock_page(page);
 
 	bio = bio_alloc(GFP_NOFS, 1);
-	bio->bi_iter.bi_sector = sector * (sb->s_blocksize >> 9);
-	bio_set_dev(bio, sb->s_bdev);
+	bio_init_fields(bio, sb->s_bdev, sector * (sb->s_blocksize >> 9), page,
+			end_bio_io_page, 0, 0);
 	bio_add_page(bio, page, PAGE_SIZE, 0);
-
-	bio->bi_end_io = end_bio_io_page;
-	bio->bi_private = page;
 	bio_set_op_attrs(bio, REQ_OP_READ, REQ_META);
 	submit_bio(bio);
 	wait_on_page_locked(page);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 09/37] iomap: use bio_init_fields in buffered-io
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (7 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 08/37] gfs2: use bio_init_fields in ops_fstype Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 10/37] iomap: use bio_init_fields in direct-io Chaitanya Kulkarni
                   ` (31 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/iomap/buffered-io.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 16a1e82e3aeb..d256799569cf 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -1222,10 +1222,9 @@ iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc,
 	struct bio *bio;
 
 	bio = bio_alloc_bioset(GFP_NOFS, BIO_MAX_PAGES, &iomap_ioend_bioset);
-	bio_set_dev(bio, wpc->iomap.bdev);
-	bio->bi_iter.bi_sector = sector;
+	bio_init_fields(bio, wpc->iomap.bdev, sector, NULL, NULL, 0,
+			inode->i_write_hint);
 	bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
-	bio->bi_write_hint = inode->i_write_hint;
 	wbc_init_bio(wbc, bio);
 
 	ioend = container_of(bio, struct iomap_ioend, io_inline_bio);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 10/37] iomap: use bio_init_fields in direct-io
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (8 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 09/37] iomap: use bio_init_fields in buffered-io Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 11/37] jfs: use bio_init_fields in logmgr Chaitanya Kulkarni
                   ` (30 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/iomap/direct-io.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index 933f234d5bec..3756dbf51909 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -190,10 +190,8 @@ iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos,
 	struct bio *bio;
 
 	bio = bio_alloc(GFP_KERNEL, 1);
-	bio_set_dev(bio, iomap->bdev);
-	bio->bi_iter.bi_sector = iomap_sector(iomap, pos);
-	bio->bi_private = dio;
-	bio->bi_end_io = iomap_dio_bio_end_io;
+	bio_init_fields(bio, iomap->bdev, iomap_sector(iomap, pos), dio,
+			iomap_dio_bio_end_io, 0, 0);
 
 	get_page(page);
 	__bio_add_page(bio, page, len, 0);
@@ -272,12 +270,9 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
 		}
 
 		bio = bio_alloc(GFP_KERNEL, nr_pages);
-		bio_set_dev(bio, iomap->bdev);
-		bio->bi_iter.bi_sector = iomap_sector(iomap, pos);
-		bio->bi_write_hint = dio->iocb->ki_hint;
-		bio->bi_ioprio = dio->iocb->ki_ioprio;
-		bio->bi_private = dio;
-		bio->bi_end_io = iomap_dio_bio_end_io;
+		bio_init_fields(bio, iomap->bdev, iomap_sector(iomap, pos), dio,
+				iomap_dio_bio_end_io, dio->iocb->ki_ioprio,
+				dio->iocb->ki_hint);
 
 		ret = bio_iov_iter_get_pages(bio, dio->submit.iter);
 		if (unlikely(ret)) {
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 11/37] jfs: use bio_init_fields in logmgr
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (9 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 10/37] iomap: use bio_init_fields in direct-io Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 12/37] zonefs: use bio_init_fields in append Chaitanya Kulkarni
                   ` (29 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/jfs/jfs_logmgr.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 9330eff210e0..ee7407ca32c0 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -1980,15 +1980,11 @@ static int lbmRead(struct jfs_log * log, int pn, struct lbuf ** bpp)
 	bp->l_flag |= lbmREAD;
 
 	bio = bio_alloc(GFP_NOFS, 1);
-
-	bio->bi_iter.bi_sector = bp->l_blkno << (log->l2bsize - 9);
-	bio_set_dev(bio, log->bdev);
-
+	bio_init_fields(bio, log->bdev, bp->l_blkno << (log->l2bsize - 9),
+			log->bdev, 0, lbmIODone, bp, 0, 0);
 	bio_add_page(bio, bp->l_page, LOGPSIZE, bp->l_offset);
 	BUG_ON(bio->bi_iter.bi_size != LOGPSIZE);
 
-	bio->bi_end_io = lbmIODone;
-	bio->bi_private = bp;
 	bio->bi_opf = REQ_OP_READ;
 	/*check if journaling to disk has been disabled*/
 	if (log->no_integrity) {
@@ -2125,14 +2121,10 @@ static void lbmStartIO(struct lbuf * bp)
 	jfs_info("lbmStartIO");
 
 	bio = bio_alloc(GFP_NOFS, 1);
-	bio->bi_iter.bi_sector = bp->l_blkno << (log->l2bsize - 9);
-	bio_set_dev(bio, log->bdev);
-
+	bio_init_fields(bio, log->bdev, bp->l_blkno << (log->l2bsize - 9),
+			log->bdev, 0, lbmIODone, bp, 0, 0);
 	bio_add_page(bio, bp->l_page, LOGPSIZE, bp->l_offset);
 	BUG_ON(bio->bi_iter.bi_size != LOGPSIZE);
-
-	bio->bi_end_io = lbmIODone;
-	bio->bi_private = bp;
 	bio->bi_opf = REQ_OP_WRITE | REQ_SYNC;
 
 	/* check if journaling to disk has been disabled */
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 12/37] zonefs: use bio_init_fields in append
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (10 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 11/37] jfs: use bio_init_fields in logmgr Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 13/37] drdb: use bio_init_fields in actlog Chaitanya Kulkarni
                   ` (28 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/zonefs/super.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index bec47f2d074b..3117a89550f6 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -682,10 +682,9 @@ static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
 	if (!bio)
 		return -ENOMEM;
 
-	bio_set_dev(bio, bdev);
-	bio->bi_iter.bi_sector = zi->i_zsector;
-	bio->bi_write_hint = iocb->ki_hint;
-	bio->bi_ioprio = iocb->ki_ioprio;
+	bio_init_fields(bio, bdev, zi->i_zsector, NULL, NULL, iocb->ki_ioprio,
+			iocb->ki_hint);
+
 	bio->bi_opf = REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE;
 	if (iocb->ki_flags & IOCB_DSYNC)
 		bio->bi_opf |= REQ_FUA;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 13/37] drdb: use bio_init_fields in actlog
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (11 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 12/37] zonefs: use bio_init_fields in append Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 14/37] drdb: use bio_init_fields in bitmap Chaitanya Kulkarni
                   ` (27 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/drbd/drbd_actlog.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c
index 7227fc7ab8ed..733679cf456b 100644
--- a/drivers/block/drbd/drbd_actlog.c
+++ b/drivers/block/drbd/drbd_actlog.c
@@ -139,13 +139,10 @@ static int _drbd_md_sync_page_io(struct drbd_device *device,
 	op_flags |= REQ_SYNC;
 
 	bio = bio_alloc_drbd(GFP_NOIO);
-	bio_set_dev(bio, bdev->md_bdev);
-	bio->bi_iter.bi_sector = sector;
+	bio_init_fields(bio, bdev->md_bdev, sector, device, drbd_md_endio, 0, 0);
 	err = -EIO;
 	if (bio_add_page(bio, device->md_io.page, size, 0) != size)
 		goto out;
-	bio->bi_private = device;
-	bio->bi_end_io = drbd_md_endio;
 	bio_set_op_attrs(bio, op, op_flags);
 
 	if (op != REQ_OP_WRITE && device->state.disk == D_DISKLESS && device->ldev == NULL)
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 14/37] drdb: use bio_init_fields in bitmap
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (12 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 13/37] drdb: use bio_init_fields in actlog Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 15/37] drdb: use bio_init_fields in receiver Chaitanya Kulkarni
                   ` (26 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/drbd/drbd_bitmap.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index df53dca5d02c..4fd9746af469 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -1006,13 +1006,10 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, int page_nr) __must_ho
 		bm_store_page_idx(page, page_nr);
 	} else
 		page = b->bm_pages[page_nr];
-	bio_set_dev(bio, device->ldev->md_bdev);
-	bio->bi_iter.bi_sector = on_disk_sector;
+	bio_init_fields(bio, device->ldev->md_bdev, on_disk_sector, ctx, drbd_bm_endio, 0, 0);
 	/* bio_add_page of a single page to an empty bio will always succeed,
 	 * according to api.  Do we want to assert that? */
 	bio_add_page(bio, page, len, 0);
-	bio->bi_private = ctx;
-	bio->bi_end_io = drbd_bm_endio;
 	bio_set_op_attrs(bio, op, 0);
 
 	if (drbd_insert_fault(device, (op == REQ_OP_WRITE) ? DRBD_FAULT_MD_WR : DRBD_FAULT_MD_RD)) {
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 15/37] drdb: use bio_init_fields in receiver
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (13 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 14/37] drdb: use bio_init_fields in bitmap Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 16/37] floppy: use bio_init_fields Chaitanya Kulkarni
                   ` (25 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/drbd/drbd_receiver.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 09c86ef3f0fd..2715081a4603 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -1296,9 +1296,7 @@ static void submit_one_flush(struct drbd_device *device, struct issue_flush_cont
 
 	octx->device = device;
 	octx->ctx = ctx;
-	bio_set_dev(bio, device->ldev->backing_bdev);
-	bio->bi_private = octx;
-	bio->bi_end_io = one_flush_endio;
+	bio_init_fields(bio, device->ldev->backing_bdev, 0, octx, one_flush_endio, 0, 0);
 	bio->bi_opf = REQ_OP_FLUSH | REQ_PREFLUSH;
 
 	device->flush_jif = jiffies;
@@ -1693,12 +1691,9 @@ int drbd_submit_peer_request(struct drbd_device *device,
 		goto fail;
 	}
 	/* > peer_req->i.sector, unless this is the first bio */
-	bio->bi_iter.bi_sector = sector;
-	bio_set_dev(bio, device->ldev->backing_bdev);
+	bio_init_fields(bio, device->ldev->backing_bdev, sector, peer_req,
+			drbd_peer_request_endio, 0, 0);
 	bio_set_op_attrs(bio, op, op_flags);
-	bio->bi_private = peer_req;
-	bio->bi_end_io = drbd_peer_request_endio;
-
 	bio->bi_next = bios;
 	bios = bio;
 	++n_bios;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 16/37] floppy: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (14 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 15/37] drdb: use bio_init_fields in receiver Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 17/37] pktcdvd: " Chaitanya Kulkarni
                   ` (24 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/floppy.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index dfe1dfc901cc..1237b64bb37b 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -4219,13 +4219,10 @@ static int __floppy_read_block_0(struct block_device *bdev, int drive)
 	cbdata.drive = drive;
 
 	bio_init(&bio, &bio_vec, 1);
-	bio_set_dev(&bio, bdev);
+	bio_init_fields(&bio, bdev, 0, &cbdata, floppy_rb0_cb, 0, 0);
 	bio_add_page(&bio, page, block_size(bdev), 0);
 
-	bio.bi_iter.bi_sector = 0;
 	bio.bi_flags |= (1 << BIO_QUIET);
-	bio.bi_private = &cbdata;
-	bio.bi_end_io = floppy_rb0_cb;
 	bio_set_op_attrs(&bio, REQ_OP_READ, 0);
 
 	init_completion(&cbdata.complete);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 17/37] pktcdvd: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (15 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 16/37] floppy: use bio_init_fields Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 18/37] bcache: use bio_init_fields in journal Chaitanya Kulkarni
                   ` (23 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/pktcdvd.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index b8bb8ec7538d..47eb4e0bd4c3 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -1028,10 +1028,8 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
 
 		bio = pkt->r_bios[f];
 		bio_reset(bio);
-		bio->bi_iter.bi_sector = pkt->sector + f * (CD_FRAMESIZE >> 9);
-		bio_set_dev(bio, pd->bdev);
-		bio->bi_end_io = pkt_end_io_read;
-		bio->bi_private = pkt;
+		bio_init_fields(bio, pd->bdev, pkt->sector + f * (CD_FRAMESIZE >> 9), pkt,
+				pkt_end_io_read, 0, 0);
 
 		p = (f * CD_FRAMESIZE) / PAGE_SIZE;
 		offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
@@ -1208,10 +1206,8 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
 	int f;
 
 	bio_reset(pkt->w_bio);
-	pkt->w_bio->bi_iter.bi_sector = pkt->sector;
-	bio_set_dev(pkt->w_bio, pd->bdev);
-	pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
-	pkt->w_bio->bi_private = pkt;
+	bio_init_fields(pkt->w_bio, pd->bdev, pkt->sector, pkt,
+			pkt_end_io_packet_write, 0, 0);
 
 	/* XXX: locking? */
 	for (f = 0; f < pkt->frames; f++) {
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 18/37] bcache: use bio_init_fields in journal
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (16 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 17/37] pktcdvd: " Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 19/37] bcache: use bio_init_fields in super Chaitanya Kulkarni
                   ` (22 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/bcache/journal.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/drivers/md/bcache/journal.c b/drivers/md/bcache/journal.c
index aefbdb7e003b..0aabcb5cf2ad 100644
--- a/drivers/md/bcache/journal.c
+++ b/drivers/md/bcache/journal.c
@@ -54,12 +54,10 @@ reread:		left = ca->sb.bucket_size - offset;
 		len = min_t(unsigned int, left, PAGE_SECTORS << JSET_BITS);
 
 		bio_reset(bio);
-		bio->bi_iter.bi_sector	= bucket + offset;
-		bio_set_dev(bio, ca->bdev);
+		bio_init_fields(bio, ca->bdev, bucket + offset,
+				&cl, journal_read_endio, 0, 0);
 		bio->bi_iter.bi_size	= len << 9;
 
-		bio->bi_end_io	= journal_read_endio;
-		bio->bi_private = &cl;
 		bio_set_op_attrs(bio, REQ_OP_READ, 0);
 		bch_bio_map(bio, data);
 
@@ -588,6 +586,7 @@ static void do_journal_discard(struct cache *ca)
 {
 	struct journal_device *ja = &ca->journal;
 	struct bio *bio = &ja->discard_bio;
+	sector_t sect;
 
 	if (!ca->discard) {
 		ja->discard_idx = ja->last_idx;
@@ -613,12 +612,10 @@ static void do_journal_discard(struct cache *ca)
 
 		bio_init(bio, bio->bi_inline_vecs, 1);
 		bio_set_op_attrs(bio, REQ_OP_DISCARD, 0);
-		bio->bi_iter.bi_sector	= bucket_to_sector(ca->set,
-						ca->sb.d[ja->discard_idx]);
-		bio_set_dev(bio, ca->bdev);
 		bio->bi_iter.bi_size	= bucket_bytes(ca);
-		bio->bi_end_io		= journal_discard_endio;
-
+		sect = bucket_to_sector(ca->set, ca->sb.d[ja->discard_idx]);
+		bio_init_fields(bio, ca->bdev, sect, NULL,
+				journal_discard_endio, 0, 0);
 		closure_get(&ca->set->cl);
 		INIT_WORK(&ja->discard_work, journal_discard_work);
 		queue_work(bch_journal_wq, &ja->discard_work);
@@ -774,12 +771,10 @@ static void journal_write_unlocked(struct closure *cl)
 		atomic_long_add(sectors, &ca->meta_sectors_written);
 
 		bio_reset(bio);
-		bio->bi_iter.bi_sector	= PTR_OFFSET(k, i);
-		bio_set_dev(bio, ca->bdev);
 		bio->bi_iter.bi_size = sectors << 9;
 
-		bio->bi_end_io	= journal_write_endio;
-		bio->bi_private = w;
+		bio_init_fields(bio, ca->bdev, PTR_OFFSET(k, i), w,
+				journal_write_endio, 0, 0);
 		bio_set_op_attrs(bio, REQ_OP_WRITE,
 				 REQ_SYNC|REQ_META|REQ_PREFLUSH|REQ_FUA);
 		bch_bio_map(bio, w->data);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 19/37] bcache: use bio_init_fields in super
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (17 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 18/37] bcache: use bio_init_fields in journal Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 20/37] bcache: use bio_init_fields in writeback Chaitanya Kulkarni
                   ` (21 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/bcache/super.c | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index a4752ac410dc..b4ced138a0c0 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -312,9 +312,7 @@ void bch_write_bdev_super(struct cached_dev *dc, struct closure *parent)
 	closure_init(cl, parent);
 
 	bio_init(bio, dc->sb_bv, 1);
-	bio_set_dev(bio, dc->bdev);
-	bio->bi_end_io	= write_bdev_super_endio;
-	bio->bi_private = dc;
+	bio_init_fields(bio, dc->bdev, 0, dc, write_bdev_super_endio, 0, 0);
 
 	closure_get(cl);
 	/* I/O request sent to backing device */
@@ -356,9 +354,7 @@ void bcache_write_super(struct cache_set *c)
 		ca->sb.version = version;
 
 	bio_init(bio, ca->sb_bv, 1);
-	bio_set_dev(bio, ca->bdev);
-	bio->bi_end_io	= write_super_endio;
-	bio->bi_private = ca;
+	bio_init_fields(bio, ca->bdev, 0, ca, write_super_endio, 0, 0);
 
 	closure_get(cl);
 	__write_super(&ca->sb, ca->sb_disk, bio);
@@ -402,9 +398,7 @@ static void uuid_io(struct cache_set *c, int op, unsigned long op_flags,
 
 		bio->bi_opf = REQ_SYNC | REQ_META | op_flags;
 		bio->bi_iter.bi_size = KEY_SIZE(k) << 9;
-
-		bio->bi_end_io	= uuid_endio;
-		bio->bi_private = cl;
+		bio_init_fields(bio, NULL, 0, cl, uuid_endio, 0, 0);
 		bio_set_op_attrs(bio, op, REQ_SYNC|REQ_META|op_flags);
 		bch_bio_map(bio, c->uuids);
 
@@ -566,12 +560,9 @@ static void prio_io(struct cache *ca, uint64_t bucket, int op,
 
 	closure_init_stack(cl);
 
-	bio->bi_iter.bi_sector	= bucket * ca->sb.bucket_size;
-	bio_set_dev(bio, ca->bdev);
 	bio->bi_iter.bi_size	= meta_bucket_bytes(&ca->sb);
-
-	bio->bi_end_io	= prio_endio;
-	bio->bi_private = ca;
+	bio_init_fields(bio, ca->bdev, bucket * ca->sb.bucket_size, ca,
+			prio_endio, 0, 0);
 	bio_set_op_attrs(bio, op, REQ_SYNC|REQ_META|op_flags);
 	bch_bio_map(bio, ca->disk_buckets);
 
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 20/37] bcache: use bio_init_fields in writeback
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (18 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 19/37] bcache: use bio_init_fields in super Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 21/37] dm-bufio: use bio_init_fields Chaitanya Kulkarni
                   ` (20 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/bcache/writeback.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c
index a129e4d2707c..e2b769bbdb14 100644
--- a/drivers/md/bcache/writeback.c
+++ b/drivers/md/bcache/writeback.c
@@ -358,10 +358,8 @@ static void write_dirty(struct closure *cl)
 	if (KEY_DIRTY(&w->key)) {
 		dirty_init(w);
 		bio_set_op_attrs(&io->bio, REQ_OP_WRITE, 0);
-		io->bio.bi_iter.bi_sector = KEY_START(&w->key);
-		bio_set_dev(&io->bio, io->dc->bdev);
-		io->bio.bi_end_io	= dirty_endio;
-
+		bio_init_fields(&io->bio, io->dc->bdev, KEY_START(&w->key), NULL,
+				dirty_endio, 0, 0);
 		/* I/O request sent to backing device */
 		closure_bio_submit(io->dc->disk.c, &io->bio, cl);
 	}
@@ -471,10 +469,10 @@ static void read_dirty(struct cached_dev *dc)
 
 			dirty_init(w);
 			bio_set_op_attrs(&io->bio, REQ_OP_READ, 0);
-			io->bio.bi_iter.bi_sector = PTR_OFFSET(&w->key, 0);
-			bio_set_dev(&io->bio,
-				    PTR_CACHE(dc->disk.c, &w->key, 0)->bdev);
-			io->bio.bi_end_io	= read_dirty_endio;
+			bio_init_fields(&io->bio,
+				PTR_CACHE(dc->disk.c, &w->key, 0)->bdev,
+				PTR_OFFSET(&w->key, 0), NULL,
+				read_dirty_endio, 0, 0);
 
 			if (bch_bio_alloc_pages(&io->bio, GFP_KERNEL))
 				goto err_free;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 21/37] dm-bufio: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (19 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 20/37] bcache: use bio_init_fields in writeback Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 22/37] dm-crypt: " Chaitanya Kulkarni
                   ` (19 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/dm-bufio.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 9c1a86bde658..1295e7e33e06 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -633,11 +633,8 @@ static void use_bio(struct dm_buffer *b, int rw, sector_t sector,
 		return;
 	}
 
-	bio->bi_iter.bi_sector = sector;
-	bio_set_dev(bio, b->c->bdev);
 	bio_set_op_attrs(bio, rw, 0);
-	bio->bi_end_io = bio_complete;
-	bio->bi_private = b;
+	bio_init_fields(bio, b->c->bdev, sector, b, bio_complete, 0, 0);
 
 	ptr = (char *)b->data + offset;
 	len = n_sectors << SECTOR_SHIFT;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 22/37] dm-crypt: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (20 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 21/37] dm-bufio: use bio_init_fields Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 23/37] dm-zoned: use bio_init_fields metadata Chaitanya Kulkarni
                   ` (18 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/dm-crypt.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 53791138d78b..b03dbcbff491 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1764,9 +1764,7 @@ static void clone_init(struct dm_crypt_io *io, struct bio *clone)
 {
 	struct crypt_config *cc = io->cc;
 
-	clone->bi_private = io;
-	clone->bi_end_io  = crypt_endio;
-	bio_set_dev(clone, cc->dev->bdev);
+	bio_init_fields(clone, cc->dev->bdev, 0, io, crypt_endio, 0, 0);
 	clone->bi_opf	  = io->base_bio->bi_opf;
 }
 
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 23/37] dm-zoned: use bio_init_fields metadata
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (21 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 22/37] dm-crypt: " Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 24/37] dm-zoned: use bio_init_fields target Chaitanya Kulkarni
                   ` (17 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/dm-zoned-metadata.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index b298fefb022e..f114d595ce23 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -577,10 +577,8 @@ static struct dmz_mblock *dmz_get_mblock_slow(struct dmz_metadata *zmd,
 	spin_unlock(&zmd->mblk_lock);
 
 	/* Submit read BIO */
-	bio->bi_iter.bi_sector = dmz_blk2sect(block);
-	bio_set_dev(bio, dev->bdev);
-	bio->bi_private = mblk;
-	bio->bi_end_io = dmz_mblock_bio_end_io;
+	bio_init_fields(bio, dev->bdev, dmz_blk2sect(block), mblk,
+			dmz_mblock_bio_end_io, 0, 0);
 	bio_set_op_attrs(bio, REQ_OP_READ, REQ_META | REQ_PRIO);
 	bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
 	submit_bio(bio);
@@ -733,10 +731,8 @@ static int dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk,
 
 	set_bit(DMZ_META_WRITING, &mblk->state);
 
-	bio->bi_iter.bi_sector = dmz_blk2sect(block);
-	bio_set_dev(bio, dev->bdev);
-	bio->bi_private = mblk;
-	bio->bi_end_io = dmz_mblock_bio_end_io;
+	bio_init_fields(bio, dev->bdev, dmz_blk2sect(block), mblk,
+			dmz_mblock_bio_end_io, 0, 0);
 	bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_META | REQ_PRIO);
 	bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
 	submit_bio(bio);
@@ -763,8 +759,7 @@ static int dmz_rdwr_block(struct dmz_dev *dev, int op,
 	if (!bio)
 		return -ENOMEM;
 
-	bio->bi_iter.bi_sector = dmz_blk2sect(block);
-	bio_set_dev(bio, dev->bdev);
+	bio_init_fields(bio, dev->bdev, dmz_blk2sect(block), NULL, NULL, 0, 0);
 	bio_set_op_attrs(bio, op, REQ_SYNC | REQ_META | REQ_PRIO);
 	bio_add_page(bio, page, DMZ_BLOCK_SIZE, 0);
 	ret = submit_bio_wait(bio);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 24/37] dm-zoned: use bio_init_fields target
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (22 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 23/37] dm-zoned: use bio_init_fields metadata Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 25/37] dm-zoned: use bio_init_fields Chaitanya Kulkarni
                   ` (16 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/dm-zoned-target.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/md/dm-zoned-target.c b/drivers/md/dm-zoned-target.c
index 697f9de37355..8b232b9e3386 100644
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -129,14 +129,11 @@ static int dmz_submit_bio(struct dmz_target *dmz, struct dm_zone *zone,
 	if (!clone)
 		return -ENOMEM;
 
-	bio_set_dev(clone, dev->bdev);
 	bioctx->dev = dev;
-	clone->bi_iter.bi_sector =
-		dmz_start_sect(dmz->metadata, zone) + dmz_blk2sect(chunk_block);
 	clone->bi_iter.bi_size = dmz_blk2sect(nr_blocks) << SECTOR_SHIFT;
-	clone->bi_end_io = dmz_clone_endio;
-	clone->bi_private = bioctx;
-
+	bio_init_fields(clone, dev->bdev,
+			dmz_start_sect(dmz->metadata, zone) + dmz, bioctx,
+			dmz_clone_endio, 0, 0);
 	bio_advance(bio, clone->bi_iter.bi_size);
 
 	refcount_inc(&bioctx->ref);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 25/37] dm-zoned: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (23 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 24/37] dm-zoned: use bio_init_fields target Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 26/37] dm log writes: " Chaitanya Kulkarni
                   ` (15 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/md.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index ca409428b4fc..b331c81f3a12 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1001,11 +1001,9 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
 
 	atomic_inc(&rdev->nr_pending);
 
-	bio_set_dev(bio, rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev);
-	bio->bi_iter.bi_sector = sector;
 	bio_add_page(bio, page, size, 0);
-	bio->bi_private = rdev;
-	bio->bi_end_io = super_written;
+	bio_init_fields(bio, rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev,
+			sector, rdev, super_written, 0, 0);
 
 	if (test_bit(MD_FAILFAST_SUPPORTED, &mddev->flags) &&
 	    test_bit(FailFast, &rdev->flags) &&
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 26/37] dm log writes: use bio_init_fields
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (24 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 25/37] dm-zoned: use bio_init_fields Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 27/37] nvmet: use bio_init_fields in bdev-ns Chaitanya Kulkarni
                   ` (14 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/md/dm-log-writes.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c
index e3d35c6c9f71..35c2e0418561 100644
--- a/drivers/md/dm-log-writes.c
+++ b/drivers/md/dm-log-writes.c
@@ -223,11 +223,9 @@ static int write_metadata(struct log_writes_c *lc, void *entry,
 		goto error;
 	}
 	bio->bi_iter.bi_size = 0;
-	bio->bi_iter.bi_sector = sector;
-	bio_set_dev(bio, lc->logdev->bdev);
 	bio->bi_end_io = (sector == WRITE_LOG_SUPER_SECTOR) ?
 			  log_end_super : log_end_io;
-	bio->bi_private = lc;
+	bio_init_fields(bio, lc->logdev->bdev, sector, lc, NULL, 0, 0);
 	bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 	page = alloc_page(GFP_KERNEL);
@@ -283,10 +281,8 @@ static int write_inline_data(struct log_writes_c *lc, void *entry,
 		}
 
 		bio->bi_iter.bi_size = 0;
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, lc->logdev->bdev);
-		bio->bi_end_io = log_end_io;
-		bio->bi_private = lc;
+		bio_init_fields(bio, lc->logdev->bdev, sector, lc, log_end_io,
+				0, 0);
 		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		for (i = 0; i < bio_pages; i++) {
@@ -370,10 +366,8 @@ static int log_one_block(struct log_writes_c *lc,
 		goto error;
 	}
 	bio->bi_iter.bi_size = 0;
-	bio->bi_iter.bi_sector = sector;
-	bio_set_dev(bio, lc->logdev->bdev);
-	bio->bi_end_io = log_end_io;
-	bio->bi_private = lc;
+	bio_init_fields(bio, lc->logdev->bdev, sector, lc, log_end_io,
+			0, 0);
 	bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 	for (i = 0; i < block->vec_cnt; i++) {
@@ -392,10 +386,7 @@ static int log_one_block(struct log_writes_c *lc,
 				goto error;
 			}
 			bio->bi_iter.bi_size = 0;
-			bio->bi_iter.bi_sector = sector;
-			bio_set_dev(bio, lc->logdev->bdev);
-			bio->bi_end_io = log_end_io;
-			bio->bi_private = lc;
+			bio_init_fields(bio, lc->logdev->bdev, sector, lc, log_end_io, 0, 0);
 			bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 			ret = bio_add_page(bio, block->vecs[i].bv_page,
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 27/37] nvmet: use bio_init_fields in bdev-ns
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (25 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 26/37] dm log writes: " Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 28/37] target: use bio_init_fields in iblock Chaitanya Kulkarni
                   ` (13 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/nvme/target/io-cmd-bdev.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/nvme/target/io-cmd-bdev.c b/drivers/nvme/target/io-cmd-bdev.c
index 125dde3f410e..302ec6bc2a55 100644
--- a/drivers/nvme/target/io-cmd-bdev.c
+++ b/drivers/nvme/target/io-cmd-bdev.c
@@ -323,9 +323,7 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req)
 		return;
 
 	bio_init(bio, req->inline_bvec, ARRAY_SIZE(req->inline_bvec));
-	bio_set_dev(bio, req->ns->bdev);
-	bio->bi_private = req;
-	bio->bi_end_io = nvmet_bio_done;
+	bio_init_fields(bio, req->ns->bdev, 0, req, nvmet_bio_done, 0, 0);
 	bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
 
 	submit_bio(bio);
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 28/37] target: use bio_init_fields in iblock
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (26 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 27/37] nvmet: use bio_init_fields in bdev-ns Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 29/37] btrfs: use bio_init_fields in scrub Chaitanya Kulkarni
                   ` (12 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/target/target_core_iblock.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index 8ed93fd205c7..ec65a9494bee 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -324,10 +324,7 @@ iblock_get_bio(struct se_cmd *cmd, sector_t lba, u32 sg_num, int op,
 		return NULL;
 	}
 
-	bio_set_dev(bio, ib_dev->ibd_bd);
-	bio->bi_private = cmd;
-	bio->bi_end_io = &iblock_bio_done;
-	bio->bi_iter.bi_sector = lba;
+	bio_init_fields(bio, ib_dev->ibd_bd, lba, cmd, &iblock_bio_done, 0, 0);
 	bio_set_op_attrs(bio, op, op_flags);
 
 	return bio;
@@ -380,11 +377,9 @@ iblock_execute_sync_cache(struct se_cmd *cmd)
 		target_complete_cmd(cmd, SAM_STAT_GOOD);
 
 	bio = bio_alloc(GFP_KERNEL, 0);
-	bio->bi_end_io = iblock_end_io_flush;
-	bio_set_dev(bio, ib_dev->ibd_bd);
+	bio_init_fields(bio, ib_dev->ibd_bd, 0, immed ? NULL : cmd,
+			iblock_end_io_flush, 0, 0);
 	bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
-	if (!immed)
-		bio->bi_private = cmd;
 	submit_bio(bio);
 	return 0;
 }
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 29/37]  btrfs: use bio_init_fields in scrub
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (27 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 28/37] target: use bio_init_fields in iblock Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 30/37] fs: use bio_init_fields in buffer Chaitanya Kulkarni
                   ` (11 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/btrfs/scrub.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 5f4f88a4d2c8..1e533966ccf1 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -1650,10 +1650,8 @@ static int scrub_add_page_to_wr_bio(struct scrub_ctx *sctx,
 			sbio->bio = bio;
 		}
 
-		bio->bi_private = sbio;
-		bio->bi_end_io = scrub_wr_bio_end_io;
-		bio_set_dev(bio, sbio->dev->bdev);
-		bio->bi_iter.bi_sector = sbio->physical >> 9;
+		bio_init_fields(bio, sbio->dev->bdev, sbio->physical >> 9,
+				sbio, scrub_wr_bio_end_io, 0, 0);
 		bio->bi_opf = REQ_OP_WRITE;
 		sbio->status = 0;
 	} else if (sbio->physical + sbio->page_count * PAGE_SIZE !=
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 30/37] fs: use bio_init_fields in buffer
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (28 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 29/37] btrfs: use bio_init_fields in scrub Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 31/37] eros: use bio_init_fields in data Chaitanya Kulkarni
                   ` (10 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/buffer.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 32647d2011df..32e9f780e134 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3027,16 +3027,13 @@ static int submit_bh_wbc(int op, int op_flags, struct buffer_head *bh,
 
 	fscrypt_set_bio_crypt_ctx_bh(bio, bh, GFP_NOIO);
 
-	bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9);
-	bio_set_dev(bio, bh->b_bdev);
+	bio_init_fields(bio, bh->b_bdev, bh->b_blocknr * (bh->b_size >> 9),
+			bh, end_bio_bh_io_sync, 0, 0);
 	bio->bi_write_hint = write_hint;
 
 	bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh));
 	BUG_ON(bio->bi_iter.bi_size != bh->b_size);
 
-	bio->bi_end_io = end_bio_bh_io_sync;
-	bio->bi_private = bh;
-
 	if (buffer_meta(bh))
 		op_flags |= REQ_META;
 	if (buffer_prio(bh))
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 31/37] eros: use bio_init_fields in data
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (29 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 30/37] fs: use bio_init_fields in buffer Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 32/37] eros: use bio_init_fields in zdata Chaitanya Kulkarni
                   ` (9 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/erofs/data.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index ea4f693bee22..15f3a3f01fa3 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -220,10 +220,8 @@ static inline struct bio *erofs_read_raw_page(struct bio *bio,
 
 		bio = bio_alloc(GFP_NOIO, nblocks);
 
-		bio->bi_end_io = erofs_readendio;
-		bio_set_dev(bio, sb->s_bdev);
-		bio->bi_iter.bi_sector = (sector_t)blknr <<
-			LOG_SECTORS_PER_BLOCK;
+		bio_init_fields(bio, sb->s_bdev, (sector_t)blknr <<
+			LOG_SECTORS_PER_BLOCK, NULL, erofs_readendio, 0, 0);
 		bio->bi_opf = REQ_OP_READ | (ra ? REQ_RAHEAD : 0);
 	}
 
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 32/37] eros: use bio_init_fields in zdata
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (30 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 31/37] eros: use bio_init_fields in data Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 33/37] jfs: use bio_init_fields in metadata Chaitanya Kulkarni
                   ` (8 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/erofs/zdata.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index 6cb356c4217b..f7cdae88982a 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -1236,12 +1236,9 @@ static void z_erofs_submit_queue(struct super_block *sb,
 
 			if (!bio) {
 				bio = bio_alloc(GFP_NOIO, BIO_MAX_PAGES);
-
-				bio->bi_end_io = z_erofs_decompressqueue_endio;
-				bio_set_dev(bio, sb->s_bdev);
-				bio->bi_iter.bi_sector = (sector_t)cur <<
-					LOG_SECTORS_PER_BLOCK;
-				bio->bi_private = bi_private;
+				bio_init_fields(bio, sb->s_bdev, (sector_t)cur <<
+					LOG_SECTORS_PER_BLOCK, bi_private,
+					z_erofs_decompressqueue_endio, 0, 0);
 				bio->bi_opf = REQ_OP_READ;
 				if (f->readahead)
 					bio->bi_opf |= REQ_RAHEAD;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 33/37] jfs: use bio_init_fields in metadata
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (31 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 32/37] eros: use bio_init_fields in zdata Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 34/37] nfs: use bio_init_fields in blocklayout Chaitanya Kulkarni
                   ` (7 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/jfs/jfs_metapage.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index 176580f54af9..5cea9c137a48 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -417,10 +417,10 @@ static int metapage_writepage(struct page *page, struct writeback_control *wbc)
 		len = min(xlen, (int)JFS_SBI(inode->i_sb)->nbperpage);
 
 		bio = bio_alloc(GFP_NOFS, 1);
-		bio_set_dev(bio, inode->i_sb->s_bdev);
-		bio->bi_iter.bi_sector = pblock << (inode->i_blkbits - 9);
-		bio->bi_end_io = metapage_write_end_io;
-		bio->bi_private = page;
+		bio_init_fields(bio, inode->i_sb->s_bdev,
+				pblock << (inode->i_blkbits - 9),
+				page, metapage_write_end_io, 0, 0);
+
 		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		/* Don't call bio_add_page yet, we may add to this vec */
@@ -497,11 +497,9 @@ static int metapage_readpage(struct file *fp, struct page *page)
 				submit_bio(bio);
 
 			bio = bio_alloc(GFP_NOFS, 1);
-			bio_set_dev(bio, inode->i_sb->s_bdev);
-			bio->bi_iter.bi_sector =
-				pblock << (inode->i_blkbits - 9);
-			bio->bi_end_io = metapage_read_end_io;
-			bio->bi_private = page;
+			bio_init_fields(bio, inode->i_sb->s_bdev,
+					pblock << (inode->i_blkbits - 9,
+					page, metapage_read_end_io, 0, 0);
 			bio_set_op_attrs(bio, REQ_OP_READ, 0);
 			len = xlen << inode->i_blkbits;
 			offset = block_offset << inode->i_blkbits;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 34/37] nfs: use bio_init_fields in blocklayout
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (32 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 33/37] jfs: use bio_init_fields in metadata Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 35/37] ocfs: use bio_init_fields in heartbeat Chaitanya Kulkarni
                   ` (6 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/nfs/blocklayout/blocklayout.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 3be6836074ae..7ac96519c8b7 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -128,12 +128,8 @@ bl_alloc_init_bio(int npg, struct block_device *bdev, sector_t disk_sector,
 			bio = bio_alloc(GFP_NOIO, npg);
 	}
 
-	if (bio) {
-		bio->bi_iter.bi_sector = disk_sector;
-		bio_set_dev(bio, bdev);
-		bio->bi_end_io = end_io;
-		bio->bi_private = par;
-	}
+	if (bio)
+		bio_init_fields(bio, bdev, disk_sector, par, end_io, 0, 0);
 	return bio;
 }
 
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 35/37] ocfs: use bio_init_fields in heartbeat
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (33 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 34/37] nfs: use bio_init_fields in blocklayout Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 36/37] xfs: use bio_init_fields in xfs_buf Chaitanya Kulkarni
                   ` (5 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/ocfs2/cluster/heartbeat.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index 0179a73a3fa2..dd37aaac4f32 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -528,10 +528,8 @@ static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg,
 	}
 
 	/* Must put everything in 512 byte sectors for the bio... */
+	bio_init_fields(bio, reg->hr_bdev, 0, wc, o2hb_bio_end_io, 0, 0);
 	bio->bi_iter.bi_sector = (reg->hr_start_block + cs) << (bits - 9);
-	bio_set_dev(bio, reg->hr_bdev);
-	bio->bi_private = wc;
-	bio->bi_end_io = o2hb_bio_end_io;
 	bio_set_op_attrs(bio, op, op_flags);
 
 	vec_start = (cs << bits) % PAGE_SIZE;
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 36/37] xfs: use bio_init_fields in xfs_buf
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (34 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 35/37] ocfs: use bio_init_fields in heartbeat Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19  5:06 ` [RFC PATCH 37/37] xfs: use bio_init_fields in xfs_log Chaitanya Kulkarni
                   ` (4 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/xfs/xfs_buf.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index f8400bbd6473..1c157cfc5f8f 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1508,10 +1508,8 @@ xfs_buf_ioapply_map(
 	nr_pages = min(total_nr_pages, BIO_MAX_PAGES);
 
 	bio = bio_alloc(GFP_NOIO, nr_pages);
-	bio_set_dev(bio, bp->b_target->bt_bdev);
-	bio->bi_iter.bi_sector = sector;
-	bio->bi_end_io = xfs_buf_bio_end_io;
-	bio->bi_private = bp;
+	bio_init_fields(bio, bp->b_target->bt_bdev, sector, bp,
+			xfs_buf_bio_end_io, 0, 0);
 	bio->bi_opf = op;
 
 	for (; size && nr_pages; nr_pages--, page_index++) {
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* [RFC PATCH 37/37] xfs: use bio_init_fields in xfs_log
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (35 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 36/37] xfs: use bio_init_fields in xfs_buf Chaitanya Kulkarni
@ 2021-01-19  5:06 ` Chaitanya Kulkarni
  2021-01-19 14:14 ` [RFC PATCH 00/37] block: introduce bio_init_fields() Mike Snitzer
                   ` (3 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-19  5:06 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu, Chaitanya Kulkarni

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/xfs/xfs_log.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index fa2d05e65ff1..062ee664a910 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -1702,10 +1702,8 @@ xlog_write_iclog(
 	}
 
 	bio_init(&iclog->ic_bio, iclog->ic_bvec, howmany(count, PAGE_SIZE));
-	bio_set_dev(&iclog->ic_bio, log->l_targ->bt_bdev);
-	iclog->ic_bio.bi_iter.bi_sector = log->l_logBBstart + bno;
-	iclog->ic_bio.bi_end_io = xlog_bio_end_io;
-	iclog->ic_bio.bi_private = iclog;
+	bio_init_fields(&iclog->ic_bio, log->l_targ->bt_bdev,
+			log->l_logBBstart + bno, iclog, xlog_bio_end_io, 0, 0);
 
 	/*
 	 * We use REQ_SYNC | REQ_IDLE here to tell the block layer the are more
-- 
2.22.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes
  2021-01-19  5:05 ` [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes Chaitanya Kulkarni
@ 2021-01-19 13:52   ` Nikolay Borisov
  0 siblings, 0 replies; 44+ messages in thread
From: Nikolay Borisov @ 2021-01-19 13:52 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-block, linux-xfs, linux-fsdevel,
	linux-kernel, drbd-dev, linux-bcache, linux-raid, linux-nvme,
	linux-scsi, target-devel, linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	damien.lemoal, naohiro.aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu



On 19.01.21 г. 7:05 ч., Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  fs/btrfs/volumes.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
> index ee086fc56c30..836167212252 100644
> --- a/fs/btrfs/volumes.c
> +++ b/fs/btrfs/volumes.c
> @@ -6371,14 +6371,12 @@ static void submit_stripe_bio(struct btrfs_bio *bbio, struct bio *bio,
>  
>  	bio->bi_private = bbio;
This line can be removed as ->private is initialized by bio_init_fields.

>  	btrfs_io_bio(bio)->device = dev;
> -	bio->bi_end_io = btrfs_end_bio;
> -	bio->bi_iter.bi_sector = physical >> 9;
> +	bio_init_fields(bio, dev->bdev, physical >> 9, bbio, btrfs_end_bio, 0, 0);
>  	btrfs_debug_in_rcu(fs_info,
>  	"btrfs_map_bio: rw %d 0x%x, sector=%llu, dev=%lu (%s id %llu), size=%u",
>  		bio_op(bio), bio->bi_opf, bio->bi_iter.bi_sector,
>  		(unsigned long)dev->bdev->bd_dev, rcu_str_deref(dev->name),
>  		dev->devid, bio->bi_iter.bi_size);
> -	bio_set_dev(bio, dev->bdev);
>  
>  	btrfs_bio_counter_inc_noblocked(fs_info);
>  
> 

^ permalink raw reply	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 00/37] block: introduce bio_init_fields()
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (36 preceding siblings ...)
  2021-01-19  5:06 ` [RFC PATCH 37/37] xfs: use bio_init_fields in xfs_log Chaitanya Kulkarni
@ 2021-01-19 14:14 ` Mike Snitzer
  2021-01-19 15:00 ` Josef Bacik
                   ` (2 subsequent siblings)
  40 siblings, 0 replies; 44+ messages in thread
From: Mike Snitzer @ 2021-01-19 14:14 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel, jfs-discussion, dm-devel,
	axboe, philipp.reisner, lars.ellenberg, efremov, colyli,
	kent.overstreet, agk, song, hch, sagi, martin.petersen, viro,
	clm, josef, dsterba, tytso, adilger.kernel, rpeterso, agruenba,
	darrick.wong, shaggy, damien.lemoal, naohiro.aota, jth, tj,
	osandov, bvanassche, gustavo, asml.silence, jefflexu

On Tue, Jan 19 2021 at 12:05am -0500,
Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> wrote:

> Hi,
> 
> This is a *compile only RFC* which adds a generic helper to initialize
> the various fields of the bio that is repeated all the places in
> file-systems, block layer, and drivers.
> 
> The new helper allows callers to initialize various members such as
> bdev, sector, private, end io callback, io priority, and write hints.
> 
> The objective of this RFC is to only start a discussion, this it not 
> completely tested at all.                                                                                                            
> Following diff shows code level benefits of this helper :-
>  38 files changed, 124 insertions(+), 236 deletions(-)


Please no... this is just obfuscation.

Adding yet another field to set would create a cascade of churn
throughout kernel (and invariably many callers won't need the new field
initialized, so you keep passing 0 for more and more fields).

Nacked-by: Mike Snitzer <snitzer@redhat.com>


^ permalink raw reply	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 00/37] block: introduce bio_init_fields()
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (37 preceding siblings ...)
  2021-01-19 14:14 ` [RFC PATCH 00/37] block: introduce bio_init_fields() Mike Snitzer
@ 2021-01-19 15:00 ` Josef Bacik
  2021-01-20  3:27 ` Chaitanya Kulkarni
  2021-01-21  3:00 ` Julian Calaby
  40 siblings, 0 replies; 44+ messages in thread
From: Josef Bacik @ 2021-01-19 15:00 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-block, linux-xfs, linux-fsdevel,
	linux-kernel, drbd-dev, linux-bcache, linux-raid, linux-nvme,
	linux-scsi, target-devel, linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, dsterba, tytso, adilger.kernel,
	rpeterso, agruenba, darrick.wong, shaggy, damien.lemoal,
	naohiro.aota, jth, tj, osandov, bvanassche, gustavo,
	asml.silence, jefflexu

On 1/19/21 12:05 AM, Chaitanya Kulkarni wrote:
> Hi,
> 
> This is a *compile only RFC* which adds a generic helper to initialize
> the various fields of the bio that is repeated all the places in
> file-systems, block layer, and drivers.
> 
> The new helper allows callers to initialize various members such as
> bdev, sector, private, end io callback, io priority, and write hints.
> 
> The objective of this RFC is to only start a discussion, this it not
> completely tested at all.

It would help to know what you're trying to accomplish here.  I'd echo Mike's 
comments about how it makes it annoying to update things in the future.  In 
addition, there's so many fields that I'm not going to remember what each one is 
without having to look it up, which makes it annoying to use and to review.  If 
it's simply to make sure fields are initialized then you could add debug sanity 
checks to submit_bio().  If it's to clean up duplication, well I'd argue that 
the duplication is much clearer than positional arguments in a giant function 
call.  If you are wanting to change a particular part of the bio to be 
initialized properly, like Dennis's work to make sure the bi_blkg was 
initialized at bi_bdev set time, then a more targeted patch series with a 
specific intent will be more useful and more successful.  Thanks,

Josef

^ permalink raw reply	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 00/37] block: introduce bio_init_fields()
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (38 preceding siblings ...)
  2021-01-19 15:00 ` Josef Bacik
@ 2021-01-20  3:27 ` Chaitanya Kulkarni
  2021-01-21  3:00 ` Julian Calaby
  40 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-20  3:27 UTC (permalink / raw)
  To: linux-block, linux-xfs, linux-fsdevel, linux-kernel, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, linux-scsi, target-devel,
	linux-btrfs, linux-ext4, cluster-devel
  Cc: jfs-discussion, dm-devel, axboe, philipp.reisner, lars.ellenberg,
	efremov, colyli, kent.overstreet, agk, snitzer, song, hch, sagi,
	martin.petersen, viro, clm, josef, dsterba, tytso,
	adilger.kernel, rpeterso, agruenba, darrick.wong, shaggy,
	Damien Le Moal, Naohiro Aota, jth, tj, osandov, bvanassche,
	gustavo, asml.silence, jefflexu

On 1/18/21 21:06, Chaitanya Kulkarni wrote:
> Hi,
>
> This is a *compile only RFC* which adds a generic helper to initialize
> the various fields of the bio that is repeated all the places in
> file-systems, block layer, and drivers.
>
> The new helper allows callers to initialize various members such as
> bdev, sector, private, end io callback, io priority, and write hints.
>
> The objective of this RFC is to only start a discussion, this it not 
> completely tested at all.                                                                                                            
> Following diff shows code level benefits of this helper :-
>  38 files changed, 124 insertions(+), 236 deletions(-)
>
> -ck
Thanks for replying Mike, Josef and Christoph.

I'll move forward with Christoph's suggestion and get rid of
optional parameters which is making this API hard to use.

^ permalink raw reply	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 00/37] block: introduce bio_init_fields()
  2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
                   ` (39 preceding siblings ...)
  2021-01-20  3:27 ` Chaitanya Kulkarni
@ 2021-01-21  3:00 ` Julian Calaby
  2021-01-21  8:23   ` Chaitanya Kulkarni
  40 siblings, 1 reply; 44+ messages in thread
From: Julian Calaby @ 2021-01-21  3:00 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: linux-block, linux-xfs, linux-fsdevel, LKML, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, Linux SCSI List,
	target-devel, linux-btrfs, linux-ext4, cluster-devel,
	jfs-discussion, dm-devel, Jens Axboe, philipp.reisner,
	lars.ellenberg, Denis Efremov, colyli, kent.overstreet, agk,
	snitzer, song, Christoph Hellwig, sagi, Martin K. Petersen,
	Al Viro, clm, josef, dsterba, tytso, adilger.kernel, rpeterso,
	agruenba, darrick.wong, shaggy, damien.lemoal, naohiro.aota, jth,
	Tejun Heo, osandov, bvanassche, gustavo, asml.silence, jefflexu

Hi Chaitanya,

On Tue, Jan 19, 2021 at 5:01 PM Chaitanya Kulkarni
<chaitanya.kulkarni@wdc.com> wrote:
>
> Hi,
>
> This is a *compile only RFC* which adds a generic helper to initialize
> the various fields of the bio that is repeated all the places in
> file-systems, block layer, and drivers.
>
> The new helper allows callers to initialize various members such as
> bdev, sector, private, end io callback, io priority, and write hints.
>
> The objective of this RFC is to only start a discussion, this it not
> completely tested at all.
> Following diff shows code level benefits of this helper :-
>  38 files changed, 124 insertions(+), 236 deletions(-)

On a more abstract note, I don't think this diffstat is actually
illustrating the benefits of this as much as you think it is.

Yeah, we've reduced the code by 112 lines, but that's barely half the
curn here. It looks, from the diffstat, that you've effectively
reduced 2 lines into 1. That isn't much of a saving.

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 44+ messages in thread

* Re: [RFC PATCH 00/37] block: introduce bio_init_fields()
  2021-01-21  3:00 ` Julian Calaby
@ 2021-01-21  8:23   ` Chaitanya Kulkarni
  0 siblings, 0 replies; 44+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-21  8:23 UTC (permalink / raw)
  To: Julian Calaby
  Cc: linux-block, linux-xfs, linux-fsdevel, LKML, drbd-dev,
	linux-bcache, linux-raid, linux-nvme, Linux SCSI List,
	target-devel, linux-btrfs, linux-ext4, cluster-devel,
	jfs-discussion, dm-devel

On 1/20/21 7:01 PM, Julian Calaby wrote:
> Hi Chaitanya,
>
> On Tue, Jan 19, 2021 at 5:01 PM Chaitanya Kulkarni
> <chaitanya.kulkarni@wdc.com> wrote:
>> Hi,
>>
>> This is a *compile only RFC* which adds a generic helper to initialize
>> the various fields of the bio that is repeated all the places in
>> file-systems, block layer, and drivers.
>>
>> The new helper allows callers to initialize various members such as
>> bdev, sector, private, end io callback, io priority, and write hints.
>>
>> The objective of this RFC is to only start a discussion, this it not
>> completely tested at all.
>> Following diff shows code level benefits of this helper :-
>>  38 files changed, 124 insertions(+), 236 deletions(-)
> On a more abstract note, I don't think this diffstat is actually
> illustrating the benefits of this as much as you think it is.
>
> Yeah, we've reduced the code by 112 lines, but that's barely half the
> curn here. It looks, from the diffstat, that you've effectively
> reduced 2 lines into 1. That isn't much of a saving.
>
> Thanks,
The diff stat is not the only measure since every component fs/driver
has a different style and nested call it just to show the effect.
Thanks for your comment, we have decided to go with the bio_new approach.



^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2021-01-21  8:28 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19  5:05 [RFC PATCH 00/37] block: introduce bio_init_fields() Chaitanya Kulkarni
2021-01-19  5:05 ` [RFC PATCH 01/37] block: introduce bio_init_fields() helper Chaitanya Kulkarni
2021-01-19  5:05 ` [RFC PATCH 02/37] fs: use bio_init_fields in block_dev Chaitanya Kulkarni
2021-01-19  5:05 ` [RFC PATCH 03/37] btrfs: use bio_init_fields in disk-io Chaitanya Kulkarni
2021-01-19  5:05 ` [RFC PATCH 04/37] btrfs: use bio_init_fields in volumes Chaitanya Kulkarni
2021-01-19 13:52   ` Nikolay Borisov
2021-01-19  5:05 ` [RFC PATCH 05/37] ext4: use bio_init_fields in page_io Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 06/37] gfs2: use bio_init_fields in lops Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 07/37] gfs2: use bio_init_fields in meta_io Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 08/37] gfs2: use bio_init_fields in ops_fstype Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 09/37] iomap: use bio_init_fields in buffered-io Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 10/37] iomap: use bio_init_fields in direct-io Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 11/37] jfs: use bio_init_fields in logmgr Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 12/37] zonefs: use bio_init_fields in append Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 13/37] drdb: use bio_init_fields in actlog Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 14/37] drdb: use bio_init_fields in bitmap Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 15/37] drdb: use bio_init_fields in receiver Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 16/37] floppy: use bio_init_fields Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 17/37] pktcdvd: " Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 18/37] bcache: use bio_init_fields in journal Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 19/37] bcache: use bio_init_fields in super Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 20/37] bcache: use bio_init_fields in writeback Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 21/37] dm-bufio: use bio_init_fields Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 22/37] dm-crypt: " Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 23/37] dm-zoned: use bio_init_fields metadata Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 24/37] dm-zoned: use bio_init_fields target Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 25/37] dm-zoned: use bio_init_fields Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 26/37] dm log writes: " Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 27/37] nvmet: use bio_init_fields in bdev-ns Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 28/37] target: use bio_init_fields in iblock Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 29/37] btrfs: use bio_init_fields in scrub Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 30/37] fs: use bio_init_fields in buffer Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 31/37] eros: use bio_init_fields in data Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 32/37] eros: use bio_init_fields in zdata Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 33/37] jfs: use bio_init_fields in metadata Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 34/37] nfs: use bio_init_fields in blocklayout Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 35/37] ocfs: use bio_init_fields in heartbeat Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 36/37] xfs: use bio_init_fields in xfs_buf Chaitanya Kulkarni
2021-01-19  5:06 ` [RFC PATCH 37/37] xfs: use bio_init_fields in xfs_log Chaitanya Kulkarni
2021-01-19 14:14 ` [RFC PATCH 00/37] block: introduce bio_init_fields() Mike Snitzer
2021-01-19 15:00 ` Josef Bacik
2021-01-20  3:27 ` Chaitanya Kulkarni
2021-01-21  3:00 ` Julian Calaby
2021-01-21  8:23   ` Chaitanya Kulkarni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).