ocfs2-devel.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new()
@ 2021-01-28  7:10 Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 01/34] block: move common code into blk_next_bio() Chaitanya Kulkarni
                   ` (33 more replies)
  0 siblings, 34 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:10 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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 non-optional members of bio
such as bdev, sector, op, opflags, max_bvecs and gfp_mask by
encapsulating new bio allocation with bio alloc with initialization
at one place.

The objective of this RFC is to only start a discussion, this it not 
completely tested at all.

-ck                         

Chaitanya Kulkarni (34):
  block: move common code into blk_next_bio()
  block: introduce and use bio_new
  drdb: use bio_new in drdb
  drdb: use bio_new() in submit_one_flush
  xen-blkback: use bio_new
  zram: use bio_new
  dm: use bio_new in dm-log-writes
  dm-zoned: use bio_new in get_mblock_slow
  dm-zoned: use bio_new in dmz_write_mblock
  dm-zoned: use bio_new in dmz_rdwr_block
  nvmet: use bio_new in nvmet_bdev_execute_rw
  scsi: target/iblock: use bio_new
  block: use bio_new in __blkdev_direct_IO
  fs/buffer: use bio_new in submit_bh_wbc
  fscrypt: use bio_new in fscrypt_zeroout_range
  fs/direct-io: use bio_new in dio_bio_alloc
  iomap: use bio_new in iomap_dio_zero
  iomap: use bio_new in iomap_dio_bio_actor
  fs/jfs/jfs_logmgr.c: use bio_new in lbmRead
  fs/jfs/jfs_logmgr.c: use bio_new in lbmStartIO
  fs/jfs/jfs_metapage.c: use bio_new in metapage_writepage
  fs/jfs/jfs_metapage.c: use bio_new in metapage_readpage
  fs/mpage.c: use bio_new mpage_alloc
  fs/nilfs: use bio_new nilfs_alloc_seg_bio
  ocfs/cluster: use bio_new in dm-log-writes
  xfs: use bio_new in xfs_rw_bdev
  xfs: use bio_new in xfs_buf_ioapply_map
  zonefs: use bio_new
  power/swap: use bio_new in hib_submit_io
  hfsplus: use bio_new in hfsplus_submit_bio()
  iomap: use bio_new in iomap_readpage_actor
  mm: use bio_new in __swap_writepage
  mm: use bio_new in swap_readpage
  mm: add swap_bio_new common bio helper

 block/blk-lib.c                     | 34 ++++++++++-------------------
 block/blk-zoned.c                   |  4 +---
 block/blk.h                         |  5 +++--
 drivers/block/drbd/drbd_receiver.c  | 12 +++++-----
 drivers/block/xen-blkback/blkback.c | 20 +++++++++++------
 drivers/block/zram/zram_drv.c       |  5 ++---
 drivers/md/dm-log-writes.c          | 30 +++++++++----------------
 drivers/md/dm-zoned-metadata.c      | 18 +++++----------
 drivers/nvme/target/io-cmd-bdev.c   |  9 +++-----
 drivers/target/target_core_iblock.c |  5 ++---
 fs/block_dev.c                      |  6 ++---
 fs/buffer.c                         | 16 ++++++--------
 fs/crypto/bio.c                     |  5 ++---
 fs/direct-io.c                      |  6 ++---
 fs/hfsplus/wrapper.c                |  5 +----
 fs/iomap/buffered-io.c              | 12 +++++-----
 fs/iomap/direct-io.c                | 11 ++++------
 fs/jfs/jfs_logmgr.c                 | 13 ++++-------
 fs/jfs/jfs_metapage.c               | 15 +++++--------
 fs/mpage.c                          | 18 +++++----------
 fs/nilfs2/segbuf.c                  | 10 ++-------
 fs/ocfs2/cluster/heartbeat.c        |  6 ++---
 fs/xfs/xfs_bio_io.c                 |  7 ++----
 fs/xfs/xfs_buf.c                    |  6 ++---
 fs/zonefs/super.c                   |  6 ++---
 include/linux/bio.h                 | 25 +++++++++++++++++++++
 kernel/power/swap.c                 |  7 +++---
 mm/page_io.c                        | 30 +++++++++++++------------
 28 files changed, 151 insertions(+), 195 deletions(-)

-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 01/34] block: move common code into blk_next_bio()
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new Chaitanya Kulkarni
                   ` (32 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

blk_next_bio() is the central function which allocates the bios for
discard, write-same, write-zeroes and zone-mgmt. The initialization of
various bio members is duplicated in disacrd, write-same, write-zeores.
In this preparation patch we add bdev, sector, op, and opf arguments to
the blk_next_bio() to reduce the duplication. 

In the next patch we introduce bio_new(), this prepration patch allows
us to call it inside blk_next_bio().

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 block/blk-lib.c   | 36 +++++++++++++++---------------------
 block/blk-zoned.c |  4 +---
 block/blk.h       |  5 +++--
 3 files changed, 19 insertions(+), 26 deletions(-)

diff --git a/block/blk-lib.c b/block/blk-lib.c
index 752f9c722062..fb486a0bdb58 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -10,7 +10,9 @@
 
 #include "blk.h"
 
-struct bio *blk_next_bio(struct bio *bio, unsigned int nr_pages, gfp_t gfp)
+struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
+			sector_t sect, unsigned op, unsigned opf,
+			unsigned int nr_pages, gfp_t gfp)
 {
 	struct bio *new = bio_alloc(gfp, nr_pages);
 
@@ -19,6 +21,10 @@ struct bio *blk_next_bio(struct bio *bio, unsigned int nr_pages, gfp_t gfp)
 		submit_bio(bio);
 	}
 
+	new->bi_iter.bi_sector = sect;
+	bio_set_dev(new, bdev);
+	bio_set_op_attrs(new, op, opf);
+
 	return new;
 }
 
@@ -94,11 +100,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_set_op_attrs(bio, op, 0);
-
+		bio = blk_next_bio(bio, bdev, sector, op, 0, 0, gfp_mask);
 		bio->bi_iter.bi_size = req_sects << 9;
 		sector += req_sects;
 		nr_sects -= req_sects;
@@ -168,6 +170,7 @@ static int __blkdev_issue_write_same(struct block_device *bdev, sector_t sector,
 {
 	struct request_queue *q = bdev_get_queue(bdev);
 	unsigned int max_write_same_sectors;
+	unsigned int op = REQ_OP_WRITE_SAME;
 	struct bio *bio = *biop;
 	sector_t bs_mask;
 
@@ -188,14 +191,11 @@ static int __blkdev_issue_write_same(struct block_device *bdev, sector_t sector,
 	max_write_same_sectors = bio_allowed_max_sectors(q);
 
 	while (nr_sects) {
-		bio = blk_next_bio(bio, 1, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
+		bio = blk_next_bio(bio, bdev, sector, op, 0, 1, gfp_mask);
 		bio->bi_vcnt = 1;
 		bio->bi_io_vec->bv_page = page;
 		bio->bi_io_vec->bv_offset = 0;
 		bio->bi_io_vec->bv_len = bdev_logical_block_size(bdev);
-		bio_set_op_attrs(bio, REQ_OP_WRITE_SAME, 0);
 
 		if (nr_sects > max_write_same_sectors) {
 			bio->bi_iter.bi_size = max_write_same_sectors << 9;
@@ -249,7 +249,9 @@ static int __blkdev_issue_write_zeroes(struct block_device *bdev,
 {
 	struct bio *bio = *biop;
 	unsigned int max_write_zeroes_sectors;
+	unsigned int op = REQ_OP_WRITE_ZEROES;
 	struct request_queue *q = bdev_get_queue(bdev);
+	unsigned int opf = flags & BLKDEV_ZERO_NOUNMAP ? REQ_NOUNMAP : 0;
 
 	if (!q)
 		return -ENXIO;
@@ -264,13 +266,7 @@ static int __blkdev_issue_write_zeroes(struct block_device *bdev,
 		return -EOPNOTSUPP;
 
 	while (nr_sects) {
-		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
-		bio->bi_opf = REQ_OP_WRITE_ZEROES;
-		if (flags & BLKDEV_ZERO_NOUNMAP)
-			bio->bi_opf |= REQ_NOUNMAP;
-
+		bio = blk_next_bio(bio, bdev, sector, op, opf, 0, gfp_mask);
 		if (nr_sects > max_write_zeroes_sectors) {
 			bio->bi_iter.bi_size = max_write_zeroes_sectors << 9;
 			nr_sects -= max_write_zeroes_sectors;
@@ -303,6 +299,7 @@ static int __blkdev_issue_zero_pages(struct block_device *bdev,
 		sector_t sector, sector_t nr_sects, gfp_t gfp_mask,
 		struct bio **biop)
 {
+	unsigned int nr_pages = __blkdev_sectors_to_bio_pages(nr_sects);
 	struct request_queue *q = bdev_get_queue(bdev);
 	struct bio *bio = *biop;
 	int bi_size = 0;
@@ -315,11 +312,8 @@ static int __blkdev_issue_zero_pages(struct block_device *bdev,
 		return -EPERM;
 
 	while (nr_sects != 0) {
-		bio = blk_next_bio(bio, __blkdev_sectors_to_bio_pages(nr_sects),
+		bio = blk_next_bio(bio, bdev, sector, REQ_OP_WRITE, 0, nr_pages,
 				   gfp_mask);
-		bio->bi_iter.bi_sector = sector;
-		bio_set_dev(bio, bdev);
-		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		while (nr_sects != 0) {
 			sz = min((sector_t) PAGE_SIZE, nr_sects << 9);
diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 7a68b6e4300c..68e77628348d 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -231,8 +231,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op,
 		return -EINVAL;
 
 	while (sector < end_sector) {
-		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio_set_dev(bio, bdev);
+		bio = blk_next_bio(bio, bdev, 0 , op, REQ_SYNC, 0, gfp_mask);
 
 		/*
 		 * Special case for the zone reset operation that reset all
@@ -244,7 +243,6 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op,
 			break;
 		}
 
-		bio->bi_opf = op | REQ_SYNC;
 		bio->bi_iter.bi_sector = sector;
 		sector += zone_sectors;
 
diff --git a/block/blk.h b/block/blk.h
index 0198335c5838..0a278bae5478 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -329,8 +329,9 @@ extern int blk_iolatency_init(struct request_queue *q);
 static inline int blk_iolatency_init(struct request_queue *q) { return 0; }
 #endif
 
-struct bio *blk_next_bio(struct bio *bio, unsigned int nr_pages, gfp_t gfp);
-
+struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
+			sector_t sect, unsigned op, unsigned opf,
+			unsigned int nr_pages, gfp_t gfp);
 #ifdef CONFIG_BLK_DEV_ZONED
 void blk_queue_free_zone_bitmaps(struct request_queue *q);
 #else
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 01/34] block: move common code into blk_next_bio() Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:21   ` Damien Le Moal
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 03/34] drdb: use bio_new in drdb Chaitanya Kulkarni
                   ` (31 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

Introduce bio_new() helper and use it in blk-lib.c to allocate and
initialize various non-optional or semi-optional members of the bio
along with bio allocation done with bio_alloc(). Here we also calmp the
max_bvecs for bio with BIO_MAX_PAGES before we pass to bio_alloc().

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

diff --git a/block/blk-lib.c b/block/blk-lib.c
index fb486a0bdb58..ec29415f00dd 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -14,17 +14,13 @@ struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
 			sector_t sect, unsigned op, unsigned opf,
 			unsigned int nr_pages, gfp_t gfp)
 {
-	struct bio *new = bio_alloc(gfp, nr_pages);
+	struct bio *new = bio_new(bdev, sect, op, opf, gfp, nr_pages);
 
 	if (bio) {
 		bio_chain(bio, new);
 		submit_bio(bio);
 	}
 
-	new->bi_iter.bi_sector = sect;
-	bio_set_dev(new, bdev);
-	bio_set_op_attrs(new, op, opf);
-
 	return new;
 }
 
diff --git a/include/linux/bio.h b/include/linux/bio.h
index c74857cf1252..2a09ba100546 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -826,5 +826,30 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
 	if (!is_sync_kiocb(kiocb))
 		bio->bi_opf |= REQ_NOWAIT;
 }
+/**
+ * bio_new -	allcate and initialize new bio
+ * @bdev:	blockdev to issue discard for
+ * @sector:	start sector
+ * @op:		REQ_OP_XXX from enum req_opf
+ * @op_flags:	REQ_XXX from enum req_flag_bits
+ * @max_bvecs:	maximum bvec to be allocated for this bio
+ * @gfp_mask:	memory allocation flags (for bio_alloc)
+ *
+ * Description:
+ *    Allocates, initializes common members, and returns a new bio.
+ */
+static inline struct bio *bio_new(struct block_device *bdev, sector_t sector,
+				  unsigned int op, unsigned int op_flags,
+				  unsigned int max_bvecs, gfp_t gfp_mask)
+{
+	unsigned nr_bvec = clamp_t(unsigned int, max_bvecs, 0, BIO_MAX_PAGES);
+	struct bio *bio = bio_alloc(gfp_mask, nr_bvec);
+
+	bio_set_dev(bio, bdev);
+	bio->bi_iter.bi_sector = sector;
+	bio_set_op_attrs(bio, op, op_flags);
+
+	return bio;
+}
 
 #endif /* __LINUX_BIO_H */
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 03/34] drdb: use bio_new in drdb
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 01/34] block: move common code into blk_next_bio() Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 04/34] drdb: use bio_new() in submit_one_flush Chaitanya Kulkarni
                   ` (30 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 09c86ef3f0fd..e1cd3427b28b 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -1643,6 +1643,7 @@ int drbd_submit_peer_request(struct drbd_device *device,
 	struct bio *bio;
 	struct page *page = peer_req->pages;
 	sector_t sector = peer_req->i.sector;
+	struct block_device *bdev = device->ldev->backing_bdev;
 	unsigned data_size = peer_req->i.size;
 	unsigned n_bios = 0;
 	unsigned nr_pages = (data_size + PAGE_SIZE -1) >> PAGE_SHIFT;
@@ -1687,15 +1688,12 @@ int drbd_submit_peer_request(struct drbd_device *device,
 	 * generated bio, but a bio allocated on behalf of the peer.
 	 */
 next_bio:
-	bio = bio_alloc(GFP_NOIO, nr_pages);
+	bio = bio_new(bdev, sector, op, op_flags, GFP_NOIO, nr_pages);
 	if (!bio) {
 		drbd_err(device, "submit_ee: Allocation of a bio failed (nr_pages=%u)\n", nr_pages);
 		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_set_op_attrs(bio, op, op_flags);
 	bio->bi_private = peer_req;
 	bio->bi_end_io = drbd_peer_request_endio;
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 04/34] drdb: use bio_new() in submit_one_flush
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (2 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 03/34] drdb: use bio_new in drdb Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 05/34] xen-blkback: use bio_new Chaitanya Kulkarni
                   ` (29 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index e1cd3427b28b..b86bbf725cbd 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -1277,8 +1277,10 @@ static void one_flush_endio(struct bio *bio)
 
 static void submit_one_flush(struct drbd_device *device, struct issue_flush_context *ctx)
 {
-	struct bio *bio = bio_alloc(GFP_NOIO, 0);
+	struct block_device *bdev = device->ldev->backing_bdev;
+	struct bio *bio = bio_new(bdev, 0, REQ_OP_FLUSH, REQ_PREFLUSH, 0, GFP_NOIO);
 	struct one_flush_context *octx = kmalloc(sizeof(*octx), GFP_NOIO);
+
 	if (!bio || !octx) {
 		drbd_warn(device, "Could not allocate a bio, CANNOT ISSUE FLUSH\n");
 		/* FIXME: what else can I do now?  disconnecting or detaching
@@ -1296,10 +1298,8 @@ 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->bi_opf = REQ_OP_FLUSH | REQ_PREFLUSH;
 
 	device->flush_jif = jiffies;
 	set_bit(FLUSH_PENDING, &device->flags);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 05/34] xen-blkback: use bio_new
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (3 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 04/34] drdb: use bio_new() in submit_one_flush Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 06/34] zram: " Chaitanya Kulkarni
                   ` (28 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

Create a wrapper on the tio of the bio_new() named get_new_bio() & use
it in the dispatch_rw_block_io().
p
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/xen-blkback/blkback.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 9ebf53903d7b..3760278f0ee6 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -1174,6 +1174,15 @@ do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 
 	return more_to_do;
 }
+
+static struct bio *
+get_new_bio(struct phys_req *preq, unsigned int op, unsigned int op_flags,
+	    gfp_t gfp_mask, unsigned int nr_bvec)
+{
+	return bio_new(preq->bdev, preq->sector_number, op, op_flags, nr_bvec,
+		       gfp_mask);
+
+}
 /*
  * Transmutation of the 'struct blkif_request' to a proper 'struct bio'
  * and call the 'submit_bio' to pass it to the underlying storage.
@@ -1324,16 +1333,14 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 				     seg[i].offset) == 0)) {
 
 			int nr_iovecs = min_t(int, (nseg-i), BIO_MAX_PAGES);
-			bio = bio_alloc(GFP_KERNEL, nr_iovecs);
+			bio = get_new_bio(&preq, operation, operation_flags,
+					  GFP_KERNEL, nr_iovecs);
 			if (unlikely(bio == NULL))
 				goto fail_put_bio;
 
 			biolist[nbio++] = bio;
-			bio_set_dev(bio, preq.bdev);
 			bio->bi_private = pending_req;
 			bio->bi_end_io  = end_block_io_op;
-			bio->bi_iter.bi_sector  = preq.sector_number;
-			bio_set_op_attrs(bio, operation, operation_flags);
 		}
 
 		preq.sector_number += seg[i].nsec;
@@ -1343,15 +1350,14 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 	if (!bio) {
 		BUG_ON(operation_flags != REQ_PREFLUSH);
 
-		bio = bio_alloc(GFP_KERNEL, 0);
+		bio = get_new_bio(&preq, operation, operation_flags,
+				  GFP_KERNEL, 0);
 		if (unlikely(bio == NULL))
 			goto fail_put_bio;
 
 		biolist[nbio++] = bio;
-		bio_set_dev(bio, preq.bdev);
 		bio->bi_private = pending_req;
 		bio->bi_end_io  = end_block_io_op;
-		bio_set_op_attrs(bio, operation, operation_flags);
 	}
 
 	atomic_set(&pending_req->pendcnt, nbio);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 06/34] zram: use bio_new
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (4 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 05/34] xen-blkback: use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 07/34] dm: use bio_new in dm-log-writes Chaitanya Kulkarni
                   ` (27 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index d7018543842e..5d744e528d4f 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -587,12 +587,11 @@ static int read_from_bdev_async(struct zram *zram, struct bio_vec *bvec,
 {
 	struct bio *bio;
 
-	bio = bio_alloc(GFP_ATOMIC, 1);
+	bio = bio_alloc(zram->bdev, entry * (PAGE_SIZE >> 9), 0, 0,
+			1, GFP_ATOMIC);
 	if (!bio)
 		return -ENOMEM;
 
-	bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
-	bio_set_dev(bio, zram->bdev);
 	if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len, bvec->bv_offset)) {
 		bio_put(bio);
 		return -EIO;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 07/34] dm: use bio_new in dm-log-writes
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (5 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 06/34] zram: " Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 08/34] dm-zoned: use bio_new in get_mblock_slow Chaitanya Kulkarni
                   ` (26 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c
index e3d35c6c9f71..7ca9af407647 100644
--- a/drivers/md/dm-log-writes.c
+++ b/drivers/md/dm-log-writes.c
@@ -217,18 +217,15 @@ static int write_metadata(struct log_writes_c *lc, void *entry,
 	void *ptr;
 	size_t ret;
 
-	bio = bio_alloc(GFP_KERNEL, 1);
+	bio = bio_new(lc->logdev->bdev, sector, REQ_OP_WRITE, 0, 1, GFP_KERNEL);
 	if (!bio) {
 		DMERR("Couldn't alloc log bio");
 		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_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 	page = alloc_page(GFP_KERNEL);
 	if (!page) {
@@ -264,7 +261,7 @@ static int write_inline_data(struct log_writes_c *lc, void *entry,
 			     size_t entrylen, void *data, size_t datalen,
 			     sector_t sector)
 {
-	int num_pages, bio_pages, pg_datalen, pg_sectorlen, i;
+	int num_pages, pg_datalen, pg_sectorlen, i;
 	struct page *page;
 	struct bio *bio;
 	size_t ret;
@@ -272,24 +269,21 @@ static int write_inline_data(struct log_writes_c *lc, void *entry,
 
 	while (datalen) {
 		num_pages = ALIGN(datalen, PAGE_SIZE) >> PAGE_SHIFT;
-		bio_pages = min(num_pages, BIO_MAX_PAGES);
 
 		atomic_inc(&lc->io_blocks);
 
-		bio = bio_alloc(GFP_KERNEL, bio_pages);
+		bio = bio_new(lc->logdev->bdev, sector, REQ_OP_WRITE, 0,
+			      num_pages, GFP_KERNEL);
 		if (!bio) {
 			DMERR("Couldn't alloc inline data bio");
 			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_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
-		for (i = 0; i < bio_pages; i++) {
+		for (i = 0; i < bio->bi_max_vecs; i++) {
 			pg_datalen = min_t(int, datalen, PAGE_SIZE);
 			pg_sectorlen = ALIGN(pg_datalen, lc->sectorsize);
 
@@ -317,7 +311,7 @@ static int write_inline_data(struct log_writes_c *lc, void *entry,
 		}
 		submit_bio(bio);
 
-		sector += bio_pages * PAGE_SECTORS;
+		sector += bio->bi_max_vecs * PAGE_SECTORS;
 	}
 	return 0;
 error_bio:
@@ -364,17 +358,15 @@ static int log_one_block(struct log_writes_c *lc,
 		goto out;
 
 	atomic_inc(&lc->io_blocks);
-	bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt, BIO_MAX_PAGES));
+	bio = bio_new(lc->logdev->bdev, sector, REQ_OP_WRITE, 0,
+			block->vec_cnt, GFP_KERNEL);
 	if (!bio) {
 		DMERR("Couldn't alloc log bio");
 		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_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 	for (i = 0; i < block->vec_cnt; i++) {
 		/*
@@ -386,17 +378,15 @@ static int log_one_block(struct log_writes_c *lc,
 		if (ret != block->vecs[i].bv_len) {
 			atomic_inc(&lc->io_blocks);
 			submit_bio(bio);
-			bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt - i, BIO_MAX_PAGES));
+			bio = bio_new(lc->logdev->bdev, sector, REQ_OP_WRITE,
+					0, block->vec_cnt - i, GFP_KERNEL);
 			if (!bio) {
 				DMERR("Couldn't alloc log bio");
 				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_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 			ret = bio_add_page(bio, block->vecs[i].bv_page,
 					   block->vecs[i].bv_len, 0);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 08/34] dm-zoned: use bio_new in get_mblock_slow
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (6 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 07/34] dm: use bio_new in dm-log-writes Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 09/34] dm-zoned: use bio_new in dmz_write_mblock Chaitanya Kulkarni
                   ` (25 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index 039d17b28938..e6252f48a49c 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -550,7 +550,8 @@ static struct dmz_mblock *dmz_get_mblock_slow(struct dmz_metadata *zmd,
 	if (!mblk)
 		return ERR_PTR(-ENOMEM);
 
-	bio = bio_alloc(GFP_NOIO, 1);
+	bio = bio_new(dev->bdev, dmz_blk2sect(block), REQ_OP_READ,
+		      REQ_META | REQ_PRIO, 1, GFP_NOIO);
 	if (!bio) {
 		dmz_free_mblock(zmd, mblk);
 		return ERR_PTR(-ENOMEM);
@@ -577,11 +578,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_set_op_attrs(bio, REQ_OP_READ, REQ_META | REQ_PRIO);
 	bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
 	submit_bio(bio);
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 09/34] dm-zoned: use bio_new in dmz_write_mblock
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (7 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 08/34] dm-zoned: use bio_new in get_mblock_slow Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 10/34] dm-zoned: use bio_new in dmz_rdwr_block Chaitanya Kulkarni
                   ` (24 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index e6252f48a49c..fa0ee732c6e9 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -723,7 +723,8 @@ static int dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk,
 	if (dmz_bdev_is_dying(dev))
 		return -EIO;
 
-	bio = bio_alloc(GFP_NOIO, 1);
+	bio = bio_new(dev->bdev, dmz_blk2sect(block), REQ_OP_WRITE,
+		      REQ_META | REQ_PRIO, 1, GFP_NOIO);
 	if (!bio) {
 		set_bit(DMZ_META_ERROR, &mblk->state);
 		return -ENOMEM;
@@ -731,11 +732,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_set_op_attrs(bio, REQ_OP_WRITE, REQ_META | REQ_PRIO);
 	bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
 	submit_bio(bio);
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 10/34] dm-zoned: use bio_new in dmz_rdwr_block
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (8 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 09/34] dm-zoned: use bio_new in dmz_write_mblock Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 11/34] nvmet: use bio_new in nvmet_bdev_execute_rw Chaitanya Kulkarni
                   ` (23 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index fa0ee732c6e9..5b5ed5fce2ed 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -755,13 +755,11 @@ static int dmz_rdwr_block(struct dmz_dev *dev, int op,
 	if (dmz_bdev_is_dying(dev))
 		return -EIO;
 
-	bio = bio_alloc(GFP_NOIO, 1);
+	bio = bio_new(dev->bdev, dmz_blk2sect(block), op,
+		      REQ_SYNC | REQ_META | REQ_PRIO, 1, GFP_NOIO);
 	if (!bio)
 		return -ENOMEM;
 
-	bio->bi_iter.bi_sector = dmz_blk2sect(block);
-	bio_set_dev(bio, dev->bdev);
-	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);
 	bio_put(bio);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 11/34] nvmet: use bio_new in nvmet_bdev_execute_rw
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (9 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 10/34] dm-zoned: use bio_new in dmz_rdwr_block Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 12/34] scsi: target/iblock: use bio_new Chaitanya Kulkarni
                   ` (22 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/nvme/target/io-cmd-bdev.c b/drivers/nvme/target/io-cmd-bdev.c
index bf6e0ac9ad28..f5fd93a796a6 100644
--- a/drivers/nvme/target/io-cmd-bdev.c
+++ b/drivers/nvme/target/io-cmd-bdev.c
@@ -225,6 +225,7 @@ static int nvmet_bdev_alloc_bip(struct nvmet_req *req, struct bio *bio,
 
 static void nvmet_bdev_execute_rw(struct nvmet_req *req)
 {
+	struct block_device *bdev = req->ns->bdev;
 	int sg_cnt = req->sg_cnt;
 	struct bio *bio;
 	struct scatterlist *sg;
@@ -265,7 +266,7 @@ static void nvmet_bdev_execute_rw(struct nvmet_req *req)
 	} else {
 		bio = bio_alloc(GFP_KERNEL, min(sg_cnt, BIO_MAX_PAGES));
 	}
-	bio_set_dev(bio, req->ns->bdev);
+	bio_set_dev(bio, bdev);
 	bio->bi_iter.bi_sector = sector;
 	bio->bi_private = req;
 	bio->bi_end_io = nvmet_bio_done;
@@ -290,11 +291,7 @@ static void nvmet_bdev_execute_rw(struct nvmet_req *req)
 				}
 			}
 
-			bio = bio_alloc(GFP_KERNEL, min(sg_cnt, BIO_MAX_PAGES));
-			bio_set_dev(bio, req->ns->bdev);
-			bio->bi_iter.bi_sector = sector;
-			bio->bi_opf = op;
-
+			bio = bio_new(bdev, sector, op, 0, sg_cnt, GFP_KERNEL);
 			bio_chain(bio, prev);
 			submit_bio(prev);
 		}
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 12/34] scsi: target/iblock: use bio_new
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (10 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 11/34] nvmet: use bio_new in nvmet_bdev_execute_rw Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 13/34] block: use bio_new in __blkdev_direct_IO Chaitanya Kulkarni
                   ` (21 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index 8ed93fd205c7..f1264918aee1 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -379,10 +379,9 @@ iblock_execute_sync_cache(struct se_cmd *cmd)
 	if (immed)
 		target_complete_cmd(cmd, SAM_STAT_GOOD);
 
-	bio = bio_alloc(GFP_KERNEL, 0);
+	bio = bio_new(ib_dev->ibd_bd, 0, REQ_OP_WRITE, REQ_PREFLUSH, 0,
+		      GFP_KERNEL);
 	bio->bi_end_io = iblock_end_io_flush;
-	bio_set_dev(bio, ib_dev->ibd_bd);
-	bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
 	if (!immed)
 		bio->bi_private = cmd;
 	submit_bio(bio);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 13/34] block: use bio_new in __blkdev_direct_IO
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (11 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 12/34] scsi: target/iblock: use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 14/34] fs/buffer: use bio_new in submit_bh_wbc Chaitanya Kulkarni
                   ` (20 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/block_dev.c b/fs/block_dev.c
index 9d4b1a884d76..f3e3247894d7 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -367,6 +367,8 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
 		return -EINVAL;
 
 	bio = bio_alloc_bioset(GFP_KERNEL, nr_pages, &blkdev_dio_pool);
+	bio_set_dev(bio, bdev);
+	bio->bi_iter.bi_sector = pos >> 9;
 
 	dio = container_of(bio, struct blkdev_dio, bio);
 	dio->is_sync = is_sync = is_sync_kiocb(iocb);
@@ -389,8 +391,6 @@ __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;
@@ -446,7 +446,7 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
 		}
 
 		submit_bio(bio);
-		bio = bio_alloc(GFP_KERNEL, nr_pages);
+		bio = bio_new(bdev, pos >> 9, 0, 0, nr_pages, GFP_KERNEL);
 	}
 
 	if (!is_poll)
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 14/34] fs/buffer: use bio_new in submit_bh_wbc
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (12 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 13/34] block: use bio_new in __blkdev_direct_IO Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 15/34] fscrypt: use bio_new in fscrypt_zeroout_range Chaitanya Kulkarni
                   ` (19 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/buffer.c b/fs/buffer.c
index 32647d2011df..fcbea667fa04 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3023,12 +3023,16 @@ static int submit_bh_wbc(int op, int op_flags, struct buffer_head *bh,
 	if (test_set_buffer_req(bh) && (op == REQ_OP_WRITE))
 		clear_buffer_write_io_error(bh);
 
-	bio = bio_alloc(GFP_NOIO, 1);
+	if (buffer_meta(bh))
+		op_flags |= REQ_META;
+	if (buffer_prio(bh))
+		op_flags |= REQ_PRIO;
+
+	bio = bio_new(bh->b_bdev,  bh->b_blocknr * (bh->b_size >> 9), op,
+		      op_flags, GFP_NOIO, 1);
 
 	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_write_hint = write_hint;
 
 	bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh));
@@ -3037,12 +3041,6 @@ static int submit_bh_wbc(int op, int op_flags, struct buffer_head *bh,
 	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))
-		op_flags |= REQ_PRIO;
-	bio_set_op_attrs(bio, op, op_flags);
-
 	/* Take care of bh's that straddle the end of the device */
 	guard_bio_eod(bio);
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 15/34] fscrypt: use bio_new in fscrypt_zeroout_range
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (13 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 14/34] fs/buffer: use bio_new in submit_bh_wbc Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 16/34] fs/direct-io: use bio_new in dio_bio_alloc Chaitanya Kulkarni
                   ` (18 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/crypto/bio.c b/fs/crypto/bio.c
index b048a0e38516..20dab9bdf098 100644
--- a/fs/crypto/bio.c
+++ b/fs/crypto/bio.c
@@ -148,12 +148,11 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
 		return -EINVAL;
 
 	/* This always succeeds since __GFP_DIRECT_RECLAIM is set. */
-	bio = bio_alloc(GFP_NOFS, nr_pages);
+	bio = bio_alloc(inode->i_sb->s_bdev, 0, REQ_OP_WRITE, 0, nr_pages,
+			GFP_NOFS);
 
 	do {
-		bio_set_dev(bio, inode->i_sb->s_bdev);
 		bio->bi_iter.bi_sector = pblk << (blockbits - 9);
-		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		i = 0;
 		offset = 0;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 16/34] fs/direct-io: use bio_new in dio_bio_alloc
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (14 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 15/34] fscrypt: use bio_new in fscrypt_zeroout_range Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero Chaitanya Kulkarni
                   ` (17 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 fs/crypto/bio.c | 2 +-
 fs/direct-io.c  | 6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/fs/crypto/bio.c b/fs/crypto/bio.c
index 20dab9bdf098..28cd62ce853e 100644
--- a/fs/crypto/bio.c
+++ b/fs/crypto/bio.c
@@ -148,7 +148,7 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
 		return -EINVAL;
 
 	/* This always succeeds since __GFP_DIRECT_RECLAIM is set. */
-	bio = bio_alloc(inode->i_sb->s_bdev, 0, REQ_OP_WRITE, 0, nr_pages,
+	bio = bio_new(inode->i_sb->s_bdev, 0, REQ_OP_WRITE, 0, nr_pages,
 			GFP_NOFS);
 
 	do {
diff --git a/fs/direct-io.c b/fs/direct-io.c
index aa1083ecd623..6aab1bd167bc 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -397,11 +397,9 @@ dio_bio_alloc(struct dio *dio, struct dio_submit *sdio,
 	 * bio_alloc() is guaranteed to return a bio when allowed to sleep and
 	 * we request a valid number of vectors.
 	 */
-	bio = bio_alloc(GFP_KERNEL, nr_vecs);
+	bio = bio_new(bdev, first_sector, dio->op, dio->op_flags, nr_vecs,
+		      GFP_KERNEL);
 
-	bio_set_dev(bio, bdev);
-	bio->bi_iter.bi_sector = first_sector;
-	bio_set_op_attrs(bio, dio->op, dio->op_flags);
 	if (dio->is_async)
 		bio->bi_end_io = dio_bio_end_aio;
 	else
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (15 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 16/34] fs/direct-io: use bio_new in dio_bio_alloc Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 16:59   ` Darrick J. Wong
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor Chaitanya Kulkarni
                   ` (16 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index ea1e8f696076..f6c557a1bd25 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -189,15 +189,13 @@ iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos,
 	int flags = REQ_SYNC | REQ_IDLE;
 	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 = bio_new(iomap->bdev, iomap_sector(iomap, pos), REQ_OP_WRITE,
+		      flags, 1, GFP_KERNEL);
 	bio->bi_private = dio;
 	bio->bi_end_io = iomap_dio_bio_end_io;
 
 	get_page(page);
 	__bio_add_page(bio, page, len, 0);
-	bio_set_op_attrs(bio, REQ_OP_WRITE, flags);
 	iomap_dio_submit_bio(dio, iomap, bio, pos);
 }
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (16 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 17:24   ` Darrick J. Wong
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead Chaitanya Kulkarni
                   ` (15 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index f6c557a1bd25..0737192f7e5c 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -267,9 +267,8 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
 			goto out;
 		}
 
-		bio = bio_alloc(GFP_KERNEL, nr_pages);
-		bio_set_dev(bio, iomap->bdev);
-		bio->bi_iter.bi_sector = iomap_sector(iomap, pos);
+		bio = bio_new(iomap->bdev, iomap_sector(iomap, pos), 0, 0,
+			      nr_pages, GFP_KERNEL);
 		bio->bi_write_hint = dio->iocb->ki_hint;
 		bio->bi_ioprio = dio->iocb->ki_ioprio;
 		bio->bi_private = dio;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (17 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 12:43   ` Dave Kleikamp
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 20/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmStartIO Chaitanya Kulkarni
                   ` (14 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 9330eff210e0..4481f3e33a3f 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -1979,17 +1979,14 @@ 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 = bio_new(log->bdev, bp->l_blkno << (log->l2bsize - 9),
+			REQ_OP_READ, 0, 1, GFP_NOFS);
 
 	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) {
 		bio->bi_iter.bi_size = 0;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 20/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmStartIO
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (18 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 21/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_writepage Chaitanya Kulkarni
                   ` (13 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 4481f3e33a3f..bb25737d52f6 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -2121,16 +2121,14 @@ 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 = bio_new(log->bdev, bp->l_blkno << (log->l2bsize - 9),
+			REQ_OP_WRITE | REQ_SYNC, 0, 1, GFP_NOFS);
 
 	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 */
 	if (log->no_integrity) {
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 21/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_writepage
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (19 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 20/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmStartIO Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 22/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_readpage Chaitanya Kulkarni
                   ` (12 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index 176580f54af9..3fa09d9a0b94 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -416,12 +416,11 @@ 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 = bio_new(inode->i_sb->s_bdev,
+			      pblock << (inode->i_blkbits - 9), REQ_OP_WRITE,
+			      0, 1, GFP_NOFS);
 		bio->bi_end_io = metapage_write_end_io;
 		bio->bi_private = page;
-		bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
 
 		/* Don't call bio_add_page yet, we may add to this vec */
 		bio_offset = offset;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 22/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_readpage
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (20 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 21/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_writepage Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 23/34] fs/mpage.c: use bio_new mpage_alloc Chaitanya Kulkarni
                   ` (11 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index 3fa09d9a0b94..c7be3a2773bf 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -495,13 +495,11 @@ static int metapage_readpage(struct file *fp, struct page *page)
 			if (bio)
 				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 = bio_new(inode->i_sb->s_bdev,
+					pblock << (inode->i_blkbits - 9),
+					REQ_OP_READ, 0, 1, GFP_NOFS);
 			bio->bi_end_io = metapage_read_end_io;
 			bio->bi_private = page;
-			bio_set_op_attrs(bio, REQ_OP_READ, 0);
 			len = xlen << inode->i_blkbits;
 			offset = block_offset << inode->i_blkbits;
 			if (bio_add_page(bio, page, len, offset) < len)
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 23/34] fs/mpage.c: use bio_new mpage_alloc
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (21 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 22/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_readpage Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 24/34] fs/nilfs: use bio_new nilfs_alloc_seg_bio Chaitanya Kulkarni
                   ` (10 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/mpage.c b/fs/mpage.c
index 830e6cc2a9e7..01725126e81f 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -68,25 +68,21 @@ static struct bio *mpage_bio_submit(int op, int op_flags, struct bio *bio)
 }
 
 static struct bio *
-mpage_alloc(struct block_device *bdev,
-		sector_t first_sector, int nr_vecs,
-		gfp_t gfp_flags)
+mpage_alloc(struct block_device *bdev, sector_t first_sector, int nr_vecs,
+	    gfp_t gfp_flags)
 {
 	struct bio *bio;
 
 	/* Restrict the given (page cache) mask for slab allocations */
 	gfp_flags &= GFP_KERNEL;
-	bio = bio_alloc(gfp_flags, nr_vecs);
+	bio = bio_new(bdev, first_sector, 0, 0, nr_vecs, gfp_flags);
 
 	if (bio == NULL && (current->flags & PF_MEMALLOC)) {
 		while (!bio && (nr_vecs /= 2))
-			bio = bio_alloc(gfp_flags, nr_vecs);
+			bio = bio_new(bdev, first_sector, 0, 0, nr_vecs,
+					gfp_flags);
 	}
 
-	if (bio) {
-		bio_set_dev(bio, bdev);
-		bio->bi_iter.bi_sector = first_sector;
-	}
 	return bio;
 }
 
@@ -304,9 +300,7 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args)
 				goto out;
 		}
 		args->bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9),
-					min_t(int, args->nr_pages,
-					      BIO_MAX_PAGES),
-					gfp);
+					args->nr_pages, gfp);
 		if (args->bio == NULL)
 			goto confused;
 	}
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 24/34] fs/nilfs: use bio_new nilfs_alloc_seg_bio
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (22 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 23/34] fs/mpage.c: use bio_new mpage_alloc Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes Chaitanya Kulkarni
                   ` (9 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c
index 1e75417bfe6e..df352cab7a93 100644
--- a/fs/nilfs2/segbuf.c
+++ b/fs/nilfs2/segbuf.c
@@ -383,15 +383,9 @@ static int nilfs_segbuf_submit_bio(struct nilfs_segment_buffer *segbuf,
 static struct bio *nilfs_alloc_seg_bio(struct the_nilfs *nilfs, sector_t start,
 				       int nr_vecs)
 {
-	struct bio *bio;
+	sector_t sect = start << (nilfs->ns_blocksize_bits - 9);
 
-	bio = bio_alloc(GFP_NOIO, nr_vecs);
-	if (likely(bio)) {
-		bio_set_dev(bio, nilfs->ns_bdev);
-		bio->bi_iter.bi_sector =
-			start << (nilfs->ns_blocksize_bits - 9);
-	}
-	return bio;
+	return bio_new(nilfs->ns_bdev, sect, 0, 0, nr_vecs, GFP_NOIO);
 }
 
 static void nilfs_segbuf_prepare_write(struct nilfs_segment_buffer *segbuf,
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (23 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 24/34] fs/nilfs: use bio_new nilfs_alloc_seg_bio Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 12:13   ` Joseph Qi
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev Chaitanya Kulkarni
                   ` (8 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index 0179a73a3fa2..b34518036446 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -515,12 +515,13 @@ static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg,
 	unsigned int cs = *current_slot;
 	struct bio *bio;
 	struct page *page;
+	sector_t sect = (reg->hr_start_block + cs) << (bits - 9);
 
 	/* Testing has shown this allocation to take long enough under
 	 * GFP_KERNEL that the local node can get fenced. It would be
 	 * nicest if we could pre-allocate these bios and avoid this
 	 * all together. */
-	bio = bio_alloc(GFP_ATOMIC, 16);
+	bio = bio_new(reg->hr_bdev, sect, op, op_flags, 16, GFP_ATOMIC);
 	if (!bio) {
 		mlog(ML_ERROR, "Could not alloc slots BIO!\n");
 		bio = ERR_PTR(-ENOMEM);
@@ -528,11 +529,8 @@ static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg,
 	}
 
 	/* Must put everything in 512 byte sectors for the bio... */
-	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;
 	while(cs < max_slots) {
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (24 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 17:21   ` Darrick J. Wong
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map Chaitanya Kulkarni
                   ` (7 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/xfs/xfs_bio_io.c b/fs/xfs/xfs_bio_io.c
index e2148f2d5d6b..e4644f22ebe6 100644
--- a/fs/xfs/xfs_bio_io.c
+++ b/fs/xfs/xfs_bio_io.c
@@ -26,11 +26,8 @@ xfs_rw_bdev(
 	if (is_vmalloc && op == REQ_OP_WRITE)
 		flush_kernel_vmap_range(data, count);
 
-	bio = bio_alloc(GFP_KERNEL, bio_max_vecs(left));
-	bio_set_dev(bio, bdev);
-	bio->bi_iter.bi_sector = sector;
-	bio->bi_opf = op | REQ_META | REQ_SYNC;
-
+	bio = bio_new(bdev, sector, op, REQ_META | REQ_SYNC, bio_max_vecs(left),
+		      GFP_KERNEL);
 	do {
 		struct page	*page = kmem_to_page(data);
 		unsigned int	off = offset_in_page(data);
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (25 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 17:21   ` Darrick J. Wong
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new Chaitanya Kulkarni
                   ` (6 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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..3ff6235e4f94 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1507,12 +1507,10 @@ xfs_buf_ioapply_map(
 	atomic_inc(&bp->b_io_remaining);
 	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 = bio_new(bp->b_target->bt_bdev, sector, op, 0, nr_pages,
+		      GFP_NOIO);
 	bio->bi_end_io = xfs_buf_bio_end_io;
 	bio->bi_private = bp;
-	bio->bi_opf = op;
 
 	for (; size && nr_pages; nr_pages--, page_index++) {
 		int	rbytes, nbytes = PAGE_SIZE - offset;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (26 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:25   ` Damien Le Moal
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io Chaitanya Kulkarni
                   ` (5 subsequent siblings)
  33 siblings, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index ab68e27bb322..620d67965a22 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -661,6 +661,7 @@ static const struct iomap_dio_ops zonefs_write_dio_ops = {
 
 static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
 {
+	unsigned int op = REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE;
 	struct inode *inode = file_inode(iocb->ki_filp);
 	struct zonefs_inode_info *zi = ZONEFS_I(inode);
 	struct block_device *bdev = inode->i_sb->s_bdev;
@@ -678,15 +679,12 @@ static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
 	if (!nr_pages)
 		return 0;
 
-	bio = bio_alloc(GFP_NOFS, nr_pages);
+	bio = bio_new(bdev, zi->i_zsector, op, 0, GFP_NOFS, nr_pages);
 	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->bi_opf = REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE;
 	if (iocb->ki_flags & IOCB_DSYNC)
 		bio->bi_opf |= REQ_FUA;
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (27 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28 10:21   ` Rafael J. Wysocki
  2021-02-17 22:02   ` Pavel Machek
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 30/34] hfsplus: use bio_new in hfsplus_submit_bio() Chaitanya Kulkarni
                   ` (4 subsequent siblings)
  33 siblings, 2 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index c73f2e295167..e92e36c053a6 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -271,13 +271,12 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr,
 		struct hib_bio_batch *hb)
 {
 	struct page *page = virt_to_page(addr);
+	sector_t sect = page_off * (PAGE_SIZE >> 9);
 	struct bio *bio;
 	int error = 0;
 
-	bio = bio_alloc(GFP_NOIO | __GFP_HIGH, 1);
-	bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9);
-	bio_set_dev(bio, hib_resume_bdev);
-	bio_set_op_attrs(bio, op, op_flags);
+	bio = bio_new(hib_resume_bdev, sect, op, op_flags, 1,
+		      GFP_NOIO | __GFP_HIGH);
 
 	if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
 		pr_err("Adding page to bio failed at %llu\n",
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 30/34] hfsplus: use bio_new in hfsplus_submit_bio()
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (28 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 31/34] iomap: use bio_new in iomap_readpage_actor Chaitanya Kulkarni
                   ` (3 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/hfsplus/wrapper.c b/fs/hfsplus/wrapper.c
index 0350dc7821bf..8341ee6c9b31 100644
--- a/fs/hfsplus/wrapper.c
+++ b/fs/hfsplus/wrapper.c
@@ -64,10 +64,7 @@ int hfsplus_submit_bio(struct super_block *sb, sector_t sector,
 	offset = start & (io_size - 1);
 	sector &= ~((io_size >> HFSPLUS_SECTOR_SHIFT) - 1);
 
-	bio = bio_alloc(GFP_NOIO, 1);
-	bio->bi_iter.bi_sector = sector;
-	bio_set_dev(bio, sb->s_bdev);
-	bio_set_op_attrs(bio, op, op_flags);
+	bio = bio_new(sb->s_bdev, sector, op, op_flags, 1, GFP_NOIO);
 
 	if (op != WRITE && data)
 		*data = (u8 *)buf + offset;
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 31/34] iomap: use bio_new in iomap_readpage_actor
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (29 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 30/34] hfsplus: use bio_new in hfsplus_submit_bio() Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 32/34] mm: use bio_new in __swap_writepage Chaitanya Kulkarni
                   ` (2 subsequent siblings)
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 16a1e82e3aeb..08d119b62cf5 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -241,6 +241,9 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
 	struct page *page = ctx->cur_page;
 	struct iomap_page *iop = iomap_page_create(inode, page);
 	bool same_page = false, is_contig = false;
+	struct block_device *bdev = iomap->bdev;
+	unsigned opf = ctx->rac ? REQ_RAHEAD : 0;
+	unsigned op = REQ_OP_READ;
 	loff_t orig_pos = pos;
 	unsigned poff, plen;
 	sector_t sector;
@@ -285,19 +288,14 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
 
 		if (ctx->rac) /* same as readahead_gfp_mask */
 			gfp |= __GFP_NORETRY | __GFP_NOWARN;
-		ctx->bio = bio_alloc(gfp, min(BIO_MAX_PAGES, nr_vecs));
+		ctx->bio = bio_new(bdev, sector, op, opf, gfp, nr_vecs);
 		/*
 		 * If the bio_alloc fails, try it again for a single page to
 		 * avoid having to deal with partial page reads.  This emulates
 		 * what do_mpage_readpage does.
 		 */
 		if (!ctx->bio)
-			ctx->bio = bio_alloc(orig_gfp, 1);
-		ctx->bio->bi_opf = REQ_OP_READ;
-		if (ctx->rac)
-			ctx->bio->bi_opf |= REQ_RAHEAD;
-		ctx->bio->bi_iter.bi_sector = sector;
-		bio_set_dev(ctx->bio, iomap->bdev);
+			ctx->bio = bio_new(bdev, sector, op, opf, orig_gfp, 1);
 		ctx->bio->bi_end_io = iomap_read_end_io;
 	}
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 32/34] mm: use bio_new in __swap_writepage
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (30 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 31/34] iomap: use bio_new in iomap_readpage_actor Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 33/34] mm: use bio_new in swap_readpage Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 34/34] mm: add swap_bio_new common bio helper Chaitanya Kulkarni
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/mm/page_io.c b/mm/page_io.c
index 92f7941c6d01..25b321489703 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -342,10 +342,8 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
 		return 0;
 	}
 
-	bio = bio_alloc(GFP_NOIO, 1);
-	bio_set_dev(bio, sis->bdev);
-	bio->bi_iter.bi_sector = swap_page_sector(page);
-	bio->bi_opf = REQ_OP_WRITE | REQ_SWAP | wbc_to_write_flags(wbc);
+	bio = bio_alloc(sis->bdev, swap_page_sector(page), REQ_OP_WRITE,
+			REQ_SWAP | wbc_to_write_flags(wbc), 1, GFP_NOIO);
 	bio->bi_end_io = end_write_func;
 	bio_add_page(bio, page, thp_size(page), 0);
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 33/34] mm: use bio_new in swap_readpage
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (31 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 32/34] mm: use bio_new in __swap_writepage Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 34/34] mm: add swap_bio_new common bio helper Chaitanya Kulkarni
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

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

diff --git a/mm/page_io.c b/mm/page_io.c
index 25b321489703..7579485ccb5e 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -342,7 +342,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
 		return 0;
 	}
 
-	bio = bio_alloc(sis->bdev, swap_page_sector(page), REQ_OP_WRITE,
+	bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_WRITE,
 			REQ_SWAP | wbc_to_write_flags(wbc), 1, GFP_NOIO);
 	bio->bi_end_io = end_write_func;
 	bio_add_page(bio, page, thp_size(page), 0);
@@ -406,10 +406,8 @@ int swap_readpage(struct page *page, bool synchronous)
 	}
 
 	ret = 0;
-	bio = bio_alloc(GFP_KERNEL, 1);
-	bio_set_dev(bio, sis->bdev);
-	bio->bi_opf = REQ_OP_READ;
-	bio->bi_iter.bi_sector = swap_page_sector(page);
+	bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_READ, 0, 1,
+			GFP_KERNEL);
 	bio->bi_end_io = end_swap_bio_read;
 	bio_add_page(bio, page, thp_size(page), 0);
 
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* [Ocfs2-devel] [RFC PATCH 34/34] mm: add swap_bio_new common bio helper
  2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
                   ` (32 preceding siblings ...)
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 33/34] mm: use bio_new in swap_readpage Chaitanya Kulkarni
@ 2021-01-28  7:11 ` Chaitanya Kulkarni
  33 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  7:11 UTC (permalink / raw)
  To: linux-xfs, linux-fsdevel, dm-devel, linux-block, linux-kernel,
	drbd-dev, xen-devel, linux-nvme, linux-scsi, target-devel,
	linux-fscrypt, jfs-discussion, linux-nilfs, ocfs2-devel,
	linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, chaitanya.kulkarni, konrad.wilk,
	hare, ming.lei, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, philipp.reisner,
	minchan, tj, lars.ellenberg, jth, asml.silence, roger.pau

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 mm/page_io.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/mm/page_io.c b/mm/page_io.c
index 7579485ccb5e..cc30c9a0b0a7 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -287,6 +287,17 @@ static void bio_associate_blkg_from_page(struct bio *bio, struct page *page)
 #define bio_associate_blkg_from_page(bio, page)		do { } while (0)
 #endif /* CONFIG_MEMCG && CONFIG_BLK_CGROUP */
 
+static inline struct bio *swap_bio_new(struct block_device *dev,
+		unsigned op, unsigned opf, gfp_t gfp, struct page *p,
+		bio_end_io_t *end_io)
+{
+	struct bio *bio = bio_new(dev, swap_page_sector(p), op, opf, 1, gfp);
+
+	bio->bi_end_io = end_io;
+	bio_add_page(bio, p, thp_size(p), 0);
+	return bio;
+}
+
 int __swap_writepage(struct page *page, struct writeback_control *wbc,
 		bio_end_io_t end_write_func)
 {
@@ -342,11 +353,9 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
 		return 0;
 	}
 
-	bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_WRITE,
-			REQ_SWAP | wbc_to_write_flags(wbc), 1, GFP_NOIO);
-	bio->bi_end_io = end_write_func;
-	bio_add_page(bio, page, thp_size(page), 0);
-
+	bio = swap_bio_new(sis->bdev, REQ_OP_WRITE,
+			REQ_SWAP | wbc_to_write_flags(wbc), GFP_KERNEL,
+			page, end_write_func);
 	bio_associate_blkg_from_page(bio, page);
 	count_swpout_vm_event(page);
 	set_page_writeback(page);
@@ -406,11 +415,8 @@ int swap_readpage(struct page *page, bool synchronous)
 	}
 
 	ret = 0;
-	bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_READ, 0, 1,
-			GFP_KERNEL);
-	bio->bi_end_io = end_swap_bio_read;
-	bio_add_page(bio, page, thp_size(page), 0);
-
+	bio = swap_bio_new(sis->bdev, REQ_OP_READ, 0, GFP_KERNEL, page,
+			end_swap_bio_read);
 	disk = bio->bi_bdev->bd_disk;
 	/*
 	 * Keep this task valid during swap readpage because the oom killer may
-- 
2.22.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:21   ` Damien Le Moal
  2021-01-28  7:27     ` Damien Le Moal
  2021-01-28  8:33     ` Chaitanya Kulkarni
  0 siblings, 2 replies; 50+ messages in thread
From: Damien Le Moal @ 2021-01-28  7:21 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-xfs, linux-fsdevel, dm-devel,
	linux-block, linux-kernel, drbd-dev, xen-devel, linux-nvme,
	linux-scsi, target-devel, linux-fscrypt, jfs-discussion,
	linux-nilfs, ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, len.brown, tiwai,
	djwong, gustavoars, pavel, alex.shi, agk, sagi, osandov,
	ebiggers, ngupta, Naohiro Aota, konrad.wilk, hare, ming.lei,
	viro, jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe, jth,
	tytso, rjw, philipp.reisner, minchan, tj, lars.ellenberg,
	roger.pau, asml.silence

On 2021/01/28 16:12, Chaitanya Kulkarni wrote:
> Introduce bio_new() helper and use it in blk-lib.c to allocate and
> initialize various non-optional or semi-optional members of the bio
> along with bio allocation done with bio_alloc(). Here we also calmp the
> max_bvecs for bio with BIO_MAX_PAGES before we pass to bio_alloc().
> 
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  block/blk-lib.c     |  6 +-----
>  include/linux/bio.h | 25 +++++++++++++++++++++++++
>  2 files changed, 26 insertions(+), 5 deletions(-)
> 
> diff --git a/block/blk-lib.c b/block/blk-lib.c
> index fb486a0bdb58..ec29415f00dd 100644
> --- a/block/blk-lib.c
> +++ b/block/blk-lib.c
> @@ -14,17 +14,13 @@ struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
>  			sector_t sect, unsigned op, unsigned opf,
>  			unsigned int nr_pages, gfp_t gfp)
>  {
> -	struct bio *new = bio_alloc(gfp, nr_pages);
> +	struct bio *new = bio_new(bdev, sect, op, opf, gfp, nr_pages);
>  
>  	if (bio) {
>  		bio_chain(bio, new);
>  		submit_bio(bio);
>  	}
>  
> -	new->bi_iter.bi_sector = sect;
> -	bio_set_dev(new, bdev);
> -	bio_set_op_attrs(new, op, opf);
> -
>  	return new;
>  }
>  
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index c74857cf1252..2a09ba100546 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -826,5 +826,30 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
>  	if (!is_sync_kiocb(kiocb))
>  		bio->bi_opf |= REQ_NOWAIT;
>  }
> +/**
> + * bio_new -	allcate and initialize new bio
> + * @bdev:	blockdev to issue discard for
> + * @sector:	start sector
> + * @op:		REQ_OP_XXX from enum req_opf
> + * @op_flags:	REQ_XXX from enum req_flag_bits
> + * @max_bvecs:	maximum bvec to be allocated for this bio
> + * @gfp_mask:	memory allocation flags (for bio_alloc)
> + *
> + * Description:
> + *    Allocates, initializes common members, and returns a new bio.
> + */
> +static inline struct bio *bio_new(struct block_device *bdev, sector_t sector,
> +				  unsigned int op, unsigned int op_flags,
> +				  unsigned int max_bvecs, gfp_t gfp_mask)
> +{
> +	unsigned nr_bvec = clamp_t(unsigned int, max_bvecs, 0, BIO_MAX_PAGES);
> +	struct bio *bio = bio_alloc(gfp_mask, nr_bvec);

I think that depending on the gfp_mask passed, bio can be NULL. So this should
be checked.

> +
> +	bio_set_dev(bio, bdev);
> +	bio->bi_iter.bi_sector = sector;
> +	bio_set_op_attrs(bio, op, op_flags);

This function is obsolete. Open code this.

> +
> +	return bio;
> +}
>  
>  #endif /* __LINUX_BIO_H */
> 


-- 
Damien Le Moal
Western Digital Research

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new Chaitanya Kulkarni
@ 2021-01-28  7:25   ` Damien Le Moal
  0 siblings, 0 replies; 50+ messages in thread
From: Damien Le Moal @ 2021-01-28  7:25 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-xfs, linux-fsdevel, dm-devel,
	linux-block, linux-kernel, drbd-dev, xen-devel, linux-nvme,
	linux-scsi, target-devel, linux-fscrypt, jfs-discussion,
	linux-nilfs, ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, len.brown, tiwai,
	djwong, gustavoars, pavel, alex.shi, agk, sagi, osandov,
	ebiggers, ngupta, Naohiro Aota, konrad.wilk, hare, ming.lei,
	viro, jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe, jth,
	tytso, rjw, philipp.reisner, minchan, tj, lars.ellenberg,
	roger.pau, asml.silence

On 2021/01/28 16:15, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  fs/zonefs/super.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
> index ab68e27bb322..620d67965a22 100644
> --- a/fs/zonefs/super.c
> +++ b/fs/zonefs/super.c
> @@ -661,6 +661,7 @@ static const struct iomap_dio_ops zonefs_write_dio_ops = {
>  
>  static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
>  {
> +	unsigned int op = REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE;

I do not see the point of adding this variable since it is used only for the
bio_new() call. Pass the op value directly.

>  	struct inode *inode = file_inode(iocb->ki_filp);
>  	struct zonefs_inode_info *zi = ZONEFS_I(inode);
>  	struct block_device *bdev = inode->i_sb->s_bdev;
> @@ -678,15 +679,12 @@ static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
>  	if (!nr_pages)
>  		return 0;
>  
> -	bio = bio_alloc(GFP_NOFS, nr_pages);
> +	bio = bio_new(bdev, zi->i_zsector, op, 0, GFP_NOFS, nr_pages);
>  	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->bi_opf = REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE;
>  	if (iocb->ki_flags & IOCB_DSYNC)
>  		bio->bi_opf |= REQ_FUA;
>  
> 


-- 
Damien Le Moal
Western Digital Research

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  7:21   ` Damien Le Moal
@ 2021-01-28  7:27     ` Damien Le Moal
  2021-01-28  8:34       ` Chaitanya Kulkarni
  2021-01-28  8:33     ` Chaitanya Kulkarni
  1 sibling, 1 reply; 50+ messages in thread
From: Damien Le Moal @ 2021-01-28  7:27 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-xfs, linux-fsdevel, dm-devel,
	linux-block, linux-kernel, drbd-dev, xen-devel, linux-nvme,
	linux-scsi, target-devel, linux-fscrypt, jfs-discussion,
	linux-nilfs, ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, len.brown, tiwai,
	djwong, gustavoars, pavel, alex.shi, agk, sagi, osandov,
	ebiggers, ngupta, Naohiro Aota, konrad.wilk, hare, ming.lei,
	viro, jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe, jth,
	tytso, rjw, philipp.reisner, minchan, tj, lars.ellenberg,
	roger.pau, asml.silence

On 2021/01/28 16:21, Damien Le Moal wrote:
> On 2021/01/28 16:12, Chaitanya Kulkarni wrote:
>> Introduce bio_new() helper and use it in blk-lib.c to allocate and
>> initialize various non-optional or semi-optional members of the bio
>> along with bio allocation done with bio_alloc(). Here we also calmp the
>> max_bvecs for bio with BIO_MAX_PAGES before we pass to bio_alloc().
>>
>> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
>> ---
>>  block/blk-lib.c     |  6 +-----
>>  include/linux/bio.h | 25 +++++++++++++++++++++++++
>>  2 files changed, 26 insertions(+), 5 deletions(-)
>>
>> diff --git a/block/blk-lib.c b/block/blk-lib.c
>> index fb486a0bdb58..ec29415f00dd 100644
>> --- a/block/blk-lib.c
>> +++ b/block/blk-lib.c
>> @@ -14,17 +14,13 @@ struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
>>  			sector_t sect, unsigned op, unsigned opf,
>>  			unsigned int nr_pages, gfp_t gfp)
>>  {
>> -	struct bio *new = bio_alloc(gfp, nr_pages);
>> +	struct bio *new = bio_new(bdev, sect, op, opf, gfp, nr_pages);
>>  
>>  	if (bio) {
>>  		bio_chain(bio, new);
>>  		submit_bio(bio);
>>  	}
>>  
>> -	new->bi_iter.bi_sector = sect;
>> -	bio_set_dev(new, bdev);
>> -	bio_set_op_attrs(new, op, opf);
>> -
>>  	return new;
>>  }
>>  
>> diff --git a/include/linux/bio.h b/include/linux/bio.h
>> index c74857cf1252..2a09ba100546 100644
>> --- a/include/linux/bio.h
>> +++ b/include/linux/bio.h
>> @@ -826,5 +826,30 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
>>  	if (!is_sync_kiocb(kiocb))
>>  		bio->bi_opf |= REQ_NOWAIT;
>>  }
>> +/**
>> + * bio_new -	allcate and initialize new bio
>> + * @bdev:	blockdev to issue discard for
>> + * @sector:	start sector
>> + * @op:		REQ_OP_XXX from enum req_opf
>> + * @op_flags:	REQ_XXX from enum req_flag_bits
>> + * @max_bvecs:	maximum bvec to be allocated for this bio
>> + * @gfp_mask:	memory allocation flags (for bio_alloc)
>> + *
>> + * Description:
>> + *    Allocates, initializes common members, and returns a new bio.
>> + */
>> +static inline struct bio *bio_new(struct block_device *bdev, sector_t sector,
>> +				  unsigned int op, unsigned int op_flags,
>> +				  unsigned int max_bvecs, gfp_t gfp_mask)
>> +{
>> +	unsigned nr_bvec = clamp_t(unsigned int, max_bvecs, 0, BIO_MAX_PAGES);
>> +	struct bio *bio = bio_alloc(gfp_mask, nr_bvec);
> 
> I think that depending on the gfp_mask passed, bio can be NULL. So this should
> be checked.
> 
>> +
>> +	bio_set_dev(bio, bdev);
>> +	bio->bi_iter.bi_sector = sector;
>> +	bio_set_op_attrs(bio, op, op_flags);
> 
> This function is obsolete. Open code this.

And that also mean that you could remove one argument to bio_new(): combine op
and op_flags into "unsigned int opf"

> 
>> +
>> +	return bio;
>> +}
>>  
>>  #endif /* __LINUX_BIO_H */
>>
> 
> 


-- 
Damien Le Moal
Western Digital Research

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  7:21   ` Damien Le Moal
  2021-01-28  7:27     ` Damien Le Moal
@ 2021-01-28  8:33     ` Chaitanya Kulkarni
  2021-01-28 16:47       ` Matthew Wilcox
  1 sibling, 1 reply; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  8:33 UTC (permalink / raw)
  To: Damien Le Moal, linux-xfs, linux-fsdevel, dm-devel, linux-block,
	linux-kernel, drbd-dev, xen-devel, linux-nvme, linux-scsi,
	target-devel, linux-fscrypt, jfs-discussion, linux-nilfs,
	ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, len.brown, tiwai,
	djwong, gustavoars, pavel, alex.shi, agk, sagi, osandov,
	ebiggers, ngupta, Naohiro Aota, konrad.wilk, hare, ming.lei,
	viro, jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe, jth,
	tytso, rjw, philipp.reisner, minchan, tj, lars.ellenberg,
	roger.pau, asml.silence


[-- Attachment #1.1: Type: text/plain, Size: 2939 bytes --]

On 1/27/21 11:21 PM, Damien Le Moal wrote:

On 2021/01/28 16:12, Chaitanya Kulkarni wrote:


Introduce bio_new() helper and use it in blk-lib.c to allocate and
initialize various non-optional or semi-optional members of the bio
along with bio allocation done with bio_alloc(). Here we also calmp the
max_bvecs for bio with BIO_MAX_PAGES before we pass to bio_alloc().

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

diff --git a/block/blk-lib.c b/block/blk-lib.c
index fb486a0bdb58..ec29415f00dd 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -14,17 +14,13 @@ struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
                        sector_t sect, unsigned op, unsigned opf,
                        unsigned int nr_pages, gfp_t gfp)
 {
-       struct bio *new = bio_alloc(gfp, nr_pages);
+       struct bio *new = bio_new(bdev, sect, op, opf, gfp, nr_pages);

        if (bio) {
                bio_chain(bio, new);
                submit_bio(bio);
        }

-       new->bi_iter.bi_sector = sect;
-       bio_set_dev(new, bdev);
-       bio_set_op_attrs(new, op, opf);
-
        return new;
 }

diff --git a/include/linux/bio.h b/include/linux/bio.h
index c74857cf1252..2a09ba100546 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -826,5 +826,30 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
        if (!is_sync_kiocb(kiocb))
                bio->bi_opf |= REQ_NOWAIT;
 }
+/**
+ * bio_new -   allcate and initialize new bio
+ * @bdev:      blockdev to issue discard for
+ * @sector:    start sector
+ * @op:                REQ_OP_XXX from enum req_opf
+ * @op_flags:  REQ_XXX from enum req_flag_bits
+ * @max_bvecs: maximum bvec to be allocated for this bio
+ * @gfp_mask:  memory allocation flags (for bio_alloc)
+ *
+ * Description:
+ *    Allocates, initializes common members, and returns a new bio.
+ */
+static inline struct bio *bio_new(struct block_device *bdev, sector_t sector,
+                                 unsigned int op, unsigned int op_flags,
+                                 unsigned int max_bvecs, gfp_t gfp_mask)
+{
+       unsigned nr_bvec = clamp_t(unsigned int, max_bvecs, 0, BIO_MAX_PAGES);
+       struct bio *bio = bio_alloc(gfp_mask, nr_bvec);


I think that depending on the gfp_mask passed, bio can be NULL. So this should
be checked.


true, I'll add that check.




+
+       bio_set_dev(bio, bdev);
+       bio->bi_iter.bi_sector = sector;
+       bio_set_op_attrs(bio, op, op_flags);


This function is obsolete. Open code this.


true, will do.




+
+       return bio;
+}

 #endif /* __LINUX_BIO_H */



Thanks for the comments Damien.

[-- Attachment #1.2: Type: text/html, Size: 3854 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  7:27     ` Damien Le Moal
@ 2021-01-28  8:34       ` Chaitanya Kulkarni
  0 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-01-28  8:34 UTC (permalink / raw)
  To: Damien Le Moal, linux-xfs, linux-fsdevel, dm-devel, linux-block,
	linux-kernel, drbd-dev, xen-devel, linux-nvme, linux-scsi,
	target-devel, linux-fscrypt, jfs-discussion, linux-nilfs,
	ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, len.brown, tiwai,
	djwong, gustavoars, pavel, alex.shi, agk, sagi, osandov,
	ebiggers, ngupta, Naohiro Aota, konrad.wilk, hare, ming.lei,
	viro, jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe, jth,
	tytso, rjw, philipp.reisner, minchan, tj, lars.ellenberg,
	roger.pau, asml.silence


[-- Attachment #1.1: Type: text/plain, Size: 469 bytes --]

On 1/27/21 11:27 PM, Damien Le Moal wrote:

+
+       bio_set_dev(bio, bdev);
+       bio->bi_iter.bi_sector = sector;
+       bio_set_op_attrs(bio, op, op_flags);


This function is obsolete. Open code this.


And that also mean that you could remove one argument to bio_new(): combine op
and op_flags into "unsigned int opf"



I did that initially but kept it separate for RFC, that is much easier than having

an extra arg, will change it in V1.

[-- Attachment #1.2: Type: text/html, Size: 1082 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io Chaitanya Kulkarni
@ 2021-01-28 10:21   ` Rafael J. Wysocki
  2021-02-17 22:02   ` Pavel Machek
  1 sibling, 0 replies; 50+ messages in thread
From: Rafael J. Wysocki @ 2021-01-28 10:21 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, Gustavo A. R. Silva, Sergey Senozhatsky,
	Mike Snitzer, Takashi Iwai, djwong, linux-nvme, Philipp Reisner,
	Linux Memory Management List, dm-devel, target-devel,
	Pavel Machek, Alex Shi, Alasdair Kergon, drbd-dev, naohiro.aota,
	linux-nilfs, Sagi Grimberg, open list:TARGET SUBSYSTEM,
	Konrad Rzeszutek Wilk, osandov, Eric Biggers, xen-devel, ngupta,
	Len Brown, Linux PM, Hannes Reinecke, Ming Lei, linux-block,
	Tejun Heo, linux-fscrypt, Al Viro, jefflexu, jaegeuk,
	konishi.ryusuke, Bart Van Assche, Jens Axboe, damien.lemoal,
	Ted Ts'o, Rafael J. Wysocki, Linux Kernel Mailing List,
	linux-xfs, Minchan Kim, linux-fsdevel, Lars Ellenberg, jth,
	asml.silence, ocfs2-devel, roger.pau

On Thu, Jan 28, 2021 at 8:21 AM Chaitanya Kulkarni
<chaitanya.kulkarni@wdc.com> wrote:
>

Please explain in the changelog why making this change is a good idea.

> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  kernel/power/swap.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/power/swap.c b/kernel/power/swap.c
> index c73f2e295167..e92e36c053a6 100644
> --- a/kernel/power/swap.c
> +++ b/kernel/power/swap.c
> @@ -271,13 +271,12 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr,
>                 struct hib_bio_batch *hb)
>  {
>         struct page *page = virt_to_page(addr);
> +       sector_t sect = page_off * (PAGE_SIZE >> 9);
>         struct bio *bio;
>         int error = 0;
>
> -       bio = bio_alloc(GFP_NOIO | __GFP_HIGH, 1);
> -       bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9);
> -       bio_set_dev(bio, hib_resume_bdev);
> -       bio_set_op_attrs(bio, op, op_flags);
> +       bio = bio_new(hib_resume_bdev, sect, op, op_flags, 1,
> +                     GFP_NOIO | __GFP_HIGH);
>
>         if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
>                 pr_err("Adding page to bio failed at %llu\n",
> --
> 2.22.1
>

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes Chaitanya Kulkarni
@ 2021-01-28 12:13   ` Joseph Qi
  0 siblings, 0 replies; 50+ messages in thread
From: Joseph Qi @ 2021-01-28 12:13 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-xfs, linux-fsdevel, dm-devel,
	linux-block, linux-kernel, drbd-dev, xen-devel, linux-nvme,
	linux-scsi, target-devel, linux-fscrypt, jfs-discussion,
	linux-nilfs, ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, konrad.wilk, hare, ming.lei, viro,
	jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe,
	damien.lemoal, jth, tytso, rjw, philipp.reisner, minchan, tj,
	lars.ellenberg, roger.pau, asml.silence

I think you send a wrong subject by mistake.

Thanks,
Joseph

On 1/28/21 3:11 PM, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  fs/ocfs2/cluster/heartbeat.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
> index 0179a73a3fa2..b34518036446 100644
> --- a/fs/ocfs2/cluster/heartbeat.c
> +++ b/fs/ocfs2/cluster/heartbeat.c
> @@ -515,12 +515,13 @@ static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg,
>  	unsigned int cs = *current_slot;
>  	struct bio *bio;
>  	struct page *page;
> +	sector_t sect = (reg->hr_start_block + cs) << (bits - 9);
>  
>  	/* Testing has shown this allocation to take long enough under
>  	 * GFP_KERNEL that the local node can get fenced. It would be
>  	 * nicest if we could pre-allocate these bios and avoid this
>  	 * all together. */
> -	bio = bio_alloc(GFP_ATOMIC, 16);
> +	bio = bio_new(reg->hr_bdev, sect, op, op_flags, 16, GFP_ATOMIC);
>  	if (!bio) {
>  		mlog(ML_ERROR, "Could not alloc slots BIO!\n");
>  		bio = ERR_PTR(-ENOMEM);
> @@ -528,11 +529,8 @@ static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg,
>  	}
>  
>  	/* Must put everything in 512 byte sectors for the bio... */
> -	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;
>  	while(cs < max_slots) {
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead Chaitanya Kulkarni
@ 2021-01-28 12:43   ` Dave Kleikamp
  0 siblings, 0 replies; 50+ messages in thread
From: Dave Kleikamp @ 2021-01-28 12:43 UTC (permalink / raw)
  To: Chaitanya Kulkarni, linux-xfs, linux-fsdevel, dm-devel,
	linux-block, linux-kernel, drbd-dev, xen-devel, linux-nvme,
	linux-scsi, target-devel, linux-fscrypt, jfs-discussion,
	linux-nilfs, ocfs2-devel, linux-pm, linux-mm
  Cc: shaggy, sergey.senozhatsky.work, snitzer, tiwai, djwong,
	gustavoars, pavel, alex.shi, agk, naohiro.aota, sagi, osandov,
	ebiggers, ngupta, len.brown, konrad.wilk, hare, ming.lei, viro,
	jefflexu, jaegeuk, konishi.ryusuke, bvanassche, axboe,
	damien.lemoal, jth, tytso, rjw, philipp.reisner, minchan, tj,
	lars.ellenberg, roger.pau, asml.silence

You probably don't need 4 patches to fs/jfs/. These can be combined into 
a single patch.

Dave

On 1/28/21 1:11 AM, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>   fs/jfs/jfs_logmgr.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
> index 9330eff210e0..4481f3e33a3f 100644
> --- a/fs/jfs/jfs_logmgr.c
> +++ b/fs/jfs/jfs_logmgr.c
> @@ -1979,17 +1979,14 @@ 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 = bio_new(log->bdev, bp->l_blkno << (log->l2bsize - 9),
> +			REQ_OP_READ, 0, 1, GFP_NOFS);
>   
>   	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) {
>   		bio->bi_iter.bi_size = 0;
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new
  2021-01-28  8:33     ` Chaitanya Kulkarni
@ 2021-01-28 16:47       ` Matthew Wilcox
  0 siblings, 0 replies; 50+ messages in thread
From: Matthew Wilcox @ 2021-01-28 16:47 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, Damien Le Moal, sergey.senozhatsky.work, snitzer, tiwai,
	djwong, jfs-discussion, linux-nvme, gustavoars, linux-mm,
	dm-devel, target-devel, axboe, pavel, alex.shi, osandov, agk,
	drbd-dev, linux-nilfs, sagi, linux-scsi, konrad.wilk, roger.pau,
	ebiggers, xen-devel, philipp.reisner, ngupta, len.brown,
	linux-pm, ming.lei, linux-block, tj, linux-fscrypt, hare,
	jefflexu, jaegeuk, konishi.ryusuke, bvanassche, Naohiro Aota,
	tytso, rjw, linux-kernel, linux-xfs, minchan, linux-fsdevel,
	lars.ellenberg, jth, asml.silence, ocfs2-devel, viro


FYI your email is completely unreadable to those not using html.
I can't tell what you wrote and what Damien wrote.

On Thu, Jan 28, 2021 at 08:33:10AM +0000, Chaitanya Kulkarni wrote:
> On 1/27/21 11:21 PM, Damien Le Moal wrote:
> 
> On 2021/01/28 16:12, Chaitanya Kulkarni wrote:
> 
> 
> Introduce bio_new() helper and use it in blk-lib.c to allocate and
> initialize various non-optional or semi-optional members of the bio
> along with bio allocation done with bio_alloc(). Here we also calmp the
> max_bvecs for bio with BIO_MAX_PAGES before we pass to bio_alloc().
> 
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com><mailto:chaitanya.kulkarni@wdc.com>
> ---
>  block/blk-lib.c     |  6 +-----
>  include/linux/bio.h | 25 +++++++++++++++++++++++++
>  2 files changed, 26 insertions(+), 5 deletions(-)
> 
> diff --git a/block/blk-lib.c b/block/blk-lib.c
> index fb486a0bdb58..ec29415f00dd 100644
> --- a/block/blk-lib.c
> +++ b/block/blk-lib.c
> @@ -14,17 +14,13 @@ struct bio *blk_next_bio(struct bio *bio, struct block_device *bdev,
>                         sector_t sect, unsigned op, unsigned opf,
>                         unsigned int nr_pages, gfp_t gfp)
>  {
> -       struct bio *new = bio_alloc(gfp, nr_pages);
> +       struct bio *new = bio_new(bdev, sect, op, opf, gfp, nr_pages);
> 
>         if (bio) {
>                 bio_chain(bio, new);
>                 submit_bio(bio);
>         }
> 
> -       new->bi_iter.bi_sector = sect;
> -       bio_set_dev(new, bdev);
> -       bio_set_op_attrs(new, op, opf);
> -
>         return new;
>  }
> 
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index c74857cf1252..2a09ba100546 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -826,5 +826,30 @@ static inline void bio_set_polled(struct bio *bio, struct kiocb *kiocb)
>         if (!is_sync_kiocb(kiocb))
>                 bio->bi_opf |= REQ_NOWAIT;
>  }
> +/**
> + * bio_new -   allcate and initialize new bio
> + * @bdev:      blockdev to issue discard for
> + * @sector:    start sector
> + * @op:                REQ_OP_XXX from enum req_opf
> + * @op_flags:  REQ_XXX from enum req_flag_bits
> + * @max_bvecs: maximum bvec to be allocated for this bio
> + * @gfp_mask:  memory allocation flags (for bio_alloc)
> + *
> + * Description:
> + *    Allocates, initializes common members, and returns a new bio.
> + */
> +static inline struct bio *bio_new(struct block_device *bdev, sector_t sector,
> +                                 unsigned int op, unsigned int op_flags,
> +                                 unsigned int max_bvecs, gfp_t gfp_mask)
> +{
> +       unsigned nr_bvec = clamp_t(unsigned int, max_bvecs, 0, BIO_MAX_PAGES);
> +       struct bio *bio = bio_alloc(gfp_mask, nr_bvec);
> 
> 
> I think that depending on the gfp_mask passed, bio can be NULL. So this should
> be checked.
> 
> 
> true, I'll add that check.
> 
> 
> 
> 
> +
> +       bio_set_dev(bio, bdev);
> +       bio->bi_iter.bi_sector = sector;
> +       bio_set_op_attrs(bio, op, op_flags);
> 
> 
> This function is obsolete. Open code this.
> 
> 
> true, will do.
> 
> 
> 
> 
> +
> +       return bio;
> +}
> 
>  #endif /* __LINUX_BIO_H */
> 
> 
> 
> Thanks for the comments Damien.

> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel@oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-devel


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero Chaitanya Kulkarni
@ 2021-01-28 16:59   ` Darrick J. Wong
  0 siblings, 0 replies; 50+ messages in thread
From: Darrick J. Wong @ 2021-01-28 16:59 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, tiwai, linux-nvme, philipp.reisner, linux-mm, dm-devel,
	target-devel, pavel, alex.shi, agk, drbd-dev, naohiro.aota,
	linux-nilfs, sagi, linux-scsi, konrad.wilk, osandov, ebiggers,
	xen-devel, ngupta, len.brown, linux-pm, hare, ming.lei,
	linux-block, tj, linux-fscrypt, viro, jefflexu, jaegeuk,
	konishi.ryusuke, bvanassche, axboe, damien.lemoal, tytso, rjw,
	linux-kernel, linux-xfs, minchan, linux-fsdevel, lars.ellenberg,
	jth, asml.silence, ocfs2-devel, roger.pau

On Wed, Jan 27, 2021 at 11:11:16PM -0800, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

Looks ok to me,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  fs/iomap/direct-io.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
> index ea1e8f696076..f6c557a1bd25 100644
> --- a/fs/iomap/direct-io.c
> +++ b/fs/iomap/direct-io.c
> @@ -189,15 +189,13 @@ iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos,
>  	int flags = REQ_SYNC | REQ_IDLE;
>  	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 = bio_new(iomap->bdev, iomap_sector(iomap, pos), REQ_OP_WRITE,
> +		      flags, 1, GFP_KERNEL);
>  	bio->bi_private = dio;
>  	bio->bi_end_io = iomap_dio_bio_end_io;
>  
>  	get_page(page);
>  	__bio_add_page(bio, page, len, 0);
> -	bio_set_op_attrs(bio, REQ_OP_WRITE, flags);
>  	iomap_dio_submit_bio(dio, iomap, bio, pos);
>  }
>  
> -- 
> 2.22.1
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev Chaitanya Kulkarni
@ 2021-01-28 17:21   ` Darrick J. Wong
  0 siblings, 0 replies; 50+ messages in thread
From: Darrick J. Wong @ 2021-01-28 17:21 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, tiwai, linux-nvme, philipp.reisner, linux-mm, dm-devel,
	target-devel, pavel, alex.shi, agk, drbd-dev, naohiro.aota,
	linux-nilfs, sagi, linux-scsi, konrad.wilk, osandov, ebiggers,
	xen-devel, ngupta, len.brown, linux-pm, hare, ming.lei,
	linux-block, tj, linux-fscrypt, viro, jefflexu, jaegeuk,
	konishi.ryusuke, bvanassche, axboe, damien.lemoal, tytso, rjw,
	linux-kernel, linux-xfs, minchan, linux-fsdevel, lars.ellenberg,
	jth, asml.silence, ocfs2-devel, roger.pau

On Wed, Jan 27, 2021 at 11:11:25PM -0800, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

Seems fine to me...
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  fs/xfs/xfs_bio_io.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/xfs/xfs_bio_io.c b/fs/xfs/xfs_bio_io.c
> index e2148f2d5d6b..e4644f22ebe6 100644
> --- a/fs/xfs/xfs_bio_io.c
> +++ b/fs/xfs/xfs_bio_io.c
> @@ -26,11 +26,8 @@ xfs_rw_bdev(
>  	if (is_vmalloc && op == REQ_OP_WRITE)
>  		flush_kernel_vmap_range(data, count);
>  
> -	bio = bio_alloc(GFP_KERNEL, bio_max_vecs(left));
> -	bio_set_dev(bio, bdev);
> -	bio->bi_iter.bi_sector = sector;
> -	bio->bi_opf = op | REQ_META | REQ_SYNC;
> -
> +	bio = bio_new(bdev, sector, op, REQ_META | REQ_SYNC, bio_max_vecs(left),
> +		      GFP_KERNEL);
>  	do {
>  		struct page	*page = kmem_to_page(data);
>  		unsigned int	off = offset_in_page(data);
> -- 
> 2.22.1
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map Chaitanya Kulkarni
@ 2021-01-28 17:21   ` Darrick J. Wong
  0 siblings, 0 replies; 50+ messages in thread
From: Darrick J. Wong @ 2021-01-28 17:21 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, tiwai, linux-nvme, philipp.reisner, linux-mm, dm-devel,
	target-devel, pavel, alex.shi, agk, drbd-dev, naohiro.aota,
	linux-nilfs, sagi, linux-scsi, konrad.wilk, osandov, ebiggers,
	xen-devel, ngupta, len.brown, linux-pm, hare, ming.lei,
	linux-block, tj, linux-fscrypt, viro, jefflexu, jaegeuk,
	konishi.ryusuke, bvanassche, axboe, damien.lemoal, tytso, rjw,
	linux-kernel, linux-xfs, minchan, linux-fsdevel, lars.ellenberg,
	jth, asml.silence, ocfs2-devel, roger.pau

On Wed, Jan 27, 2021 at 11:11:26PM -0800, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  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..3ff6235e4f94 100644
> --- a/fs/xfs/xfs_buf.c
> +++ b/fs/xfs/xfs_buf.c
> @@ -1507,12 +1507,10 @@ xfs_buf_ioapply_map(
>  	atomic_inc(&bp->b_io_remaining);
>  	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 = bio_new(bp->b_target->bt_bdev, sector, op, 0, nr_pages,
> +		      GFP_NOIO);
>  	bio->bi_end_io = xfs_buf_bio_end_io;
>  	bio->bi_private = bp;
> -	bio->bi_opf = op;
>  
>  	for (; size && nr_pages; nr_pages--, page_index++) {
>  		int	rbytes, nbytes = PAGE_SIZE - offset;
> -- 
> 2.22.1
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor Chaitanya Kulkarni
@ 2021-01-28 17:24   ` Darrick J. Wong
  0 siblings, 0 replies; 50+ messages in thread
From: Darrick J. Wong @ 2021-01-28 17:24 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, tiwai, linux-nvme, philipp.reisner, linux-mm, dm-devel,
	target-devel, pavel, alex.shi, agk, drbd-dev, naohiro.aota,
	linux-nilfs, sagi, linux-scsi, konrad.wilk, osandov, ebiggers,
	xen-devel, ngupta, len.brown, linux-pm, hare, ming.lei,
	linux-block, tj, linux-fscrypt, viro, jefflexu, jaegeuk,
	konishi.ryusuke, bvanassche, axboe, damien.lemoal, tytso, rjw,
	linux-kernel, linux-xfs, minchan, linux-fsdevel, lars.ellenberg,
	jth, asml.silence, ocfs2-devel, roger.pau

On Wed, Jan 27, 2021 at 11:11:17PM -0800, Chaitanya Kulkarni wrote:
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> ---
>  fs/iomap/direct-io.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
> index f6c557a1bd25..0737192f7e5c 100644
> --- a/fs/iomap/direct-io.c
> +++ b/fs/iomap/direct-io.c
> @@ -267,9 +267,8 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
>  			goto out;
>  		}
>  
> -		bio = bio_alloc(GFP_KERNEL, nr_pages);
> -		bio_set_dev(bio, iomap->bdev);
> -		bio->bi_iter.bi_sector = iomap_sector(iomap, pos);
> +		bio = bio_new(iomap->bdev, iomap_sector(iomap, pos), 0, 0,
> +			      nr_pages, GFP_KERNEL);

op == 0?  It seems a little odd to me that we'd set the field to zero
and then construct bi_opf later.

It also strikes me as a little strange that bi_opf is combined from the
third and fourth parameters, but maybe some day you'll want to do some
parameter verification on debug kernels or something...?

--D

>  		bio->bi_write_hint = dio->iocb->ki_hint;
>  		bio->bi_ioprio = dio->iocb->ki_ioprio;
>  		bio->bi_private = dio;
> -- 
> 2.22.1
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io
  2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io Chaitanya Kulkarni
  2021-01-28 10:21   ` Rafael J. Wysocki
@ 2021-02-17 22:02   ` Pavel Machek
  2021-02-18  1:28     ` Chaitanya Kulkarni
  1 sibling, 1 reply; 50+ messages in thread
From: Pavel Machek @ 2021-02-17 22:02 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, tiwai, linux-nvme, philipp.reisner, linux-mm, dm-devel,
	target-devel, alex.shi, agk, drbd-dev, naohiro.aota, linux-nilfs,
	sagi, linux-scsi, konrad.wilk, osandov, ebiggers, xen-devel,
	ngupta, len.brown, linux-pm, hare, ming.lei, linux-block, tj,
	linux-fscrypt, viro, jefflexu, jaegeuk, konishi.ryusuke,
	bvanassche, axboe, damien.lemoal, tytso, rjw, linux-kernel,
	linux-xfs, minchan, linux-fsdevel, lars.ellenberg, jth,
	asml.silence, ocfs2-devel, roger.pau


[-- Attachment #1.1: Type: text/plain, Size: 914 bytes --]

Hi!
> 
> diff --git a/kernel/power/swap.c b/kernel/power/swap.c
> index c73f2e295167..e92e36c053a6 100644
> --- a/kernel/power/swap.c
> +++ b/kernel/power/swap.c
> @@ -271,13 +271,12 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr,
>  		struct hib_bio_batch *hb)
>  {
>  	struct page *page = virt_to_page(addr);
> +	sector_t sect = page_off * (PAGE_SIZE >> 9);
>  	struct bio *bio;
>  	int error = 0;
>  
> -	bio = bio_alloc(GFP_NOIO | __GFP_HIGH, 1);
> -	bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9);
> -	bio_set_dev(bio, hib_resume_bdev);
> -	bio_set_op_attrs(bio, op, op_flags);
> +	bio = bio_new(hib_resume_bdev, sect, op, op_flags, 1,
> +		      GFP_NOIO | __GFP_HIGH);
>  

C function with 6 arguments... dunno. Old version looks comparable or
even more readable...

Best regards,
							Pavel

-- 
http://www.livejournal.com/~pavelmachek

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

* Re: [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io
  2021-02-17 22:02   ` Pavel Machek
@ 2021-02-18  1:28     ` Chaitanya Kulkarni
  0 siblings, 0 replies; 50+ messages in thread
From: Chaitanya Kulkarni @ 2021-02-18  1:28 UTC (permalink / raw)
  To: Pavel Machek
  Cc: shaggy, jfs-discussion, gustavoars, sergey.senozhatsky.work,
	snitzer, len.brown, tiwai, Damien Le Moal, linux-nvme,
	philipp.reisner, linux-mm, dm-devel, target-devel, alex.shi, agk,
	drbd-dev, linux-nilfs, sagi, linux-scsi, konrad.wilk, osandov,
	ebiggers, xen-devel, ngupta, Naohiro Aota, linux-pm, hare,
	ming.lei, linux-block, tj, linux-fscrypt, viro, jefflexu,
	jaegeuk, konishi.ryusuke, bvanassche, axboe, tytso, rjw,
	linux-kernel, linux-xfs, minchan, linux-fsdevel, lars.ellenberg,
	jth, asml.silence, ocfs2-devel, roger.pau

On 2/17/21 14:03, Pavel Machek wrote:
> Hi!
>> diff --git a/kernel/power/swap.c b/kernel/power/swap.c
>> index c73f2e295167..e92e36c053a6 100644
>> --- a/kernel/power/swap.c
>> +++ b/kernel/power/swap.c
>> @@ -271,13 +271,12 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr,
>>  		struct hib_bio_batch *hb)
>>  {
>>  	struct page *page = virt_to_page(addr);
>> +	sector_t sect = page_off * (PAGE_SIZE >> 9);
>>  	struct bio *bio;
>>  	int error = 0;
>>  
>> -	bio = bio_alloc(GFP_NOIO | __GFP_HIGH, 1);
>> -	bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9);
>> -	bio_set_dev(bio, hib_resume_bdev);
>> -	bio_set_op_attrs(bio, op, op_flags);
>> +	bio = bio_new(hib_resume_bdev, sect, op, op_flags, 1,
>> +		      GFP_NOIO | __GFP_HIGH);
>>  
> C function with 6 arguments... dunno. Old version looks comparable or
> even more readable...
>
> Best regards,
> 							Pavel
The library functions that are in the kernel tree which are used
in different file-systems and fabrics drivers do take 6 arguments.

Plus what is the point of duplicating code for mandatory
parameters all over the kernel ?


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

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

end of thread, other threads:[~2021-02-26 17:28 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-28  7:10 [Ocfs2-devel] [RFC PATCH 00/34] block: introduce bio_new() Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 01/34] block: move common code into blk_next_bio() Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 02/34] block: introduce and use bio_new Chaitanya Kulkarni
2021-01-28  7:21   ` Damien Le Moal
2021-01-28  7:27     ` Damien Le Moal
2021-01-28  8:34       ` Chaitanya Kulkarni
2021-01-28  8:33     ` Chaitanya Kulkarni
2021-01-28 16:47       ` Matthew Wilcox
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 03/34] drdb: use bio_new in drdb Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 04/34] drdb: use bio_new() in submit_one_flush Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 05/34] xen-blkback: use bio_new Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 06/34] zram: " Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 07/34] dm: use bio_new in dm-log-writes Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 08/34] dm-zoned: use bio_new in get_mblock_slow Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 09/34] dm-zoned: use bio_new in dmz_write_mblock Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 10/34] dm-zoned: use bio_new in dmz_rdwr_block Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 11/34] nvmet: use bio_new in nvmet_bdev_execute_rw Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 12/34] scsi: target/iblock: use bio_new Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 13/34] block: use bio_new in __blkdev_direct_IO Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 14/34] fs/buffer: use bio_new in submit_bh_wbc Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 15/34] fscrypt: use bio_new in fscrypt_zeroout_range Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 16/34] fs/direct-io: use bio_new in dio_bio_alloc Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 17/34] iomap: use bio_new in iomap_dio_zero Chaitanya Kulkarni
2021-01-28 16:59   ` Darrick J. Wong
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 18/34] iomap: use bio_new in iomap_dio_bio_actor Chaitanya Kulkarni
2021-01-28 17:24   ` Darrick J. Wong
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 19/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmRead Chaitanya Kulkarni
2021-01-28 12:43   ` Dave Kleikamp
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 20/34] fs/jfs/jfs_logmgr.c: use bio_new in lbmStartIO Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 21/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_writepage Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 22/34] fs/jfs/jfs_metapage.c: use bio_new in metapage_readpage Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 23/34] fs/mpage.c: use bio_new mpage_alloc Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 24/34] fs/nilfs: use bio_new nilfs_alloc_seg_bio Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 25/34] ocfs/cluster: use bio_new in dm-log-writes Chaitanya Kulkarni
2021-01-28 12:13   ` Joseph Qi
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 26/34] xfs: use bio_new in xfs_rw_bdev Chaitanya Kulkarni
2021-01-28 17:21   ` Darrick J. Wong
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 27/34] xfs: use bio_new in xfs_buf_ioapply_map Chaitanya Kulkarni
2021-01-28 17:21   ` Darrick J. Wong
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 28/34] zonefs: use bio_new Chaitanya Kulkarni
2021-01-28  7:25   ` Damien Le Moal
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 29/34] power/swap: use bio_new in hib_submit_io Chaitanya Kulkarni
2021-01-28 10:21   ` Rafael J. Wysocki
2021-02-17 22:02   ` Pavel Machek
2021-02-18  1:28     ` Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 30/34] hfsplus: use bio_new in hfsplus_submit_bio() Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 31/34] iomap: use bio_new in iomap_readpage_actor Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 32/34] mm: use bio_new in __swap_writepage Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 33/34] mm: use bio_new in swap_readpage Chaitanya Kulkarni
2021-01-28  7:11 ` [Ocfs2-devel] [RFC PATCH 34/34] mm: add swap_bio_new common bio helper 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).