* [PATCH 00/12] block: cleanup direct access to bvec table
@ 2016-11-11 12:05 Ming Lei
2016-11-11 12:05 ` [PATCH 04/12] target: avoid to access .bi_vcnt directly Ming Lei
2016-11-22 15:53 ` [PATCH 00/12] block: cleanup direct access to bvec table Jens Axboe
0 siblings, 2 replies; 4+ messages in thread
From: Ming Lei @ 2016-11-11 12:05 UTC (permalink / raw)
To: Jens Axboe, linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: Mike Snitzer, Ming Lei, Rasmus Villemoes,
open list:NVM EXPRESS TARGET DRIVER, Keith Busch,
open list:DEVICE-MAPPER LVM, open list:TARGET SUBSYSTEM,
Yijing Wang, open list:DRBD DRIVER, Hannes Reinecke,
open list:TARGET SUBSYSTEM, Christoph Hellwig, Mike Christie,
Guoqing Jiang, Johannes Thumshirn, Kent Overstreet, Coly Li,
open list:SOFTWARE RAID Multiple Disks SUPPORT,
open list:BCACHE BLOCK LAYER CACHE
Hi,
This patchset cleans up direct access to bvec table.
The 1st patch passes bvec table to bio_init(), so that
direct access to bvec table in bio initialization is avoided.
For other patches, most of them uses bio_add_page()
to replace hardcode style of adding page to bvec,
and others avoids to access bio->bi_vcnt.
The most special one is to use bvec iterator helpers
to implement .get_page/.next_page for dm-io.c
One big motivation is to prepare for supporting multipage
bvec, but this patchset is one good cleanup too even not
for that purpose.
Thanks,
Ming
Ming Lei (12):
block: bio: pass bvec table to bio_init()
block: drbd: remove impossible failure handling
block: floppy: use bio_add_page()
target: avoid to access .bi_vcnt directly
bcache: debug: avoid to access .bi_io_vec directly
dm: crypt: use bio_add_page()
dm: use bvec iterator helpers to implement .get_page and .next_page
dm: dm.c: replace 'bio->bi_vcnt == 1' with !bio_multiple_segments
fs: logfs: convert to bio_add_page() in sync_request()
fs: logfs: use bio_add_page() in __bdev_writeseg()
fs: logfs: use bio_add_page() in do_erase()
fs: logfs: remove unnecesary check
block/bio.c | 8 ++-
drivers/block/drbd/drbd_receiver.c | 14 +----
drivers/block/floppy.c | 10 ++--
drivers/md/bcache/debug.c | 11 ++--
drivers/md/bcache/io.c | 4 +-
drivers/md/bcache/journal.c | 4 +-
drivers/md/bcache/movinggc.c | 6 +--
drivers/md/bcache/request.c | 2 +-
drivers/md/bcache/super.c | 12 ++---
drivers/md/bcache/writeback.c | 5 +-
drivers/md/dm-bufio.c | 4 +-
drivers/md/dm-crypt.c | 8 +--
drivers/md/dm-io.c | 34 ++++++++----
drivers/md/dm-rq.c | 7 ++-
drivers/md/dm.c | 2 +-
drivers/md/multipath.c | 2 +-
drivers/md/raid5-cache.c | 2 +-
drivers/md/raid5.c | 9 +---
drivers/nvme/target/io-cmd.c | 4 +-
drivers/target/target_core_pscsi.c | 8 +--
fs/logfs/dev_bdev.c | 106 +++++++++++++------------------------
include/linux/bio.h | 3 +-
22 files changed, 107 insertions(+), 158 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 04/12] target: avoid to access .bi_vcnt directly
2016-11-11 12:05 [PATCH 00/12] block: cleanup direct access to bvec table Ming Lei
@ 2016-11-11 12:05 ` Ming Lei
2016-11-12 21:37 ` Sagi Grimberg
2016-11-22 15:53 ` [PATCH 00/12] block: cleanup direct access to bvec table Jens Axboe
1 sibling, 1 reply; 4+ messages in thread
From: Ming Lei @ 2016-11-11 12:05 UTC (permalink / raw)
To: Jens Axboe, linux-kernel
Cc: linux-block, linux-fsdevel, Christoph Hellwig, Ming Lei,
Nicholas A. Bellinger, open list:TARGET SUBSYSTEM,
open list:TARGET SUBSYSTEM
When the bio is full, bio_add_pc_page() will return zero,
so use this way to handle full bio.
Also replace access to .bi_vcnt for pr_debug() with bio_segments().
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
---
drivers/target/target_core_pscsi.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
index 9125d9358dea..04d7aa7390d0 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -935,13 +935,9 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
rc = bio_add_pc_page(pdv->pdv_sd->request_queue,
bio, page, bytes, off);
- if (rc != bytes)
- goto fail;
-
pr_debug("PSCSI: bio->bi_vcnt: %d nr_vecs: %d\n",
- bio->bi_vcnt, nr_vecs);
-
- if (bio->bi_vcnt > nr_vecs) {
+ bio_segments(bio), nr_vecs);
+ if (rc != bytes) {
pr_debug("PSCSI: Reached bio->bi_vcnt max:"
" %d i: %d bio: %p, allocating another"
" bio\n", bio->bi_vcnt, i, bio);
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 04/12] target: avoid to access .bi_vcnt directly
2016-11-11 12:05 ` [PATCH 04/12] target: avoid to access .bi_vcnt directly Ming Lei
@ 2016-11-12 21:37 ` Sagi Grimberg
0 siblings, 0 replies; 4+ messages in thread
From: Sagi Grimberg @ 2016-11-12 21:37 UTC (permalink / raw)
To: Ming Lei, Jens Axboe, linux-kernel
Cc: linux-block, linux-fsdevel, Christoph Hellwig,
Nicholas A. Bellinger, open list:TARGET SUBSYSTEM,
open list:TARGET SUBSYSTEM
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 00/12] block: cleanup direct access to bvec table
2016-11-11 12:05 [PATCH 00/12] block: cleanup direct access to bvec table Ming Lei
2016-11-11 12:05 ` [PATCH 04/12] target: avoid to access .bi_vcnt directly Ming Lei
@ 2016-11-22 15:53 ` Jens Axboe
1 sibling, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2016-11-22 15:53 UTC (permalink / raw)
To: Ming Lei, linux-kernel
Cc: linux-block, linux-fsdevel, Christoph Hellwig, Adrian Hunter,
Coly Li, open list:DEVICE-MAPPER (LVM), open list:DRBD DRIVER,
Eric Wheeler, Guoqing Jiang, Hannes Reinecke, Jiri Kosina,
Johannes Thumshirn, Keith Busch, Kent Overstreet,
open list:BCACHE (BLOCK LAYER CACHE),
open list:NVM EXPRESS TARGET DRIVER,
open list:SOFTWARE RAID (Multiple Disks) SUPPORT
On 11/11/2016 05:05 AM, Ming Lei wrote:
> Hi,
>
> This patchset cleans up direct access to bvec table.
>
> The 1st patch passes bvec table to bio_init(), so that
> direct access to bvec table in bio initialization is avoided.
>
> For other patches, most of them uses bio_add_page()
> to replace hardcode style of adding page to bvec,
> and others avoids to access bio->bi_vcnt.
>
> The most special one is to use bvec iterator helpers
> to implement .get_page/.next_page for dm-io.c
>
> One big motivation is to prepare for supporting multipage
> bvec, but this patchset is one good cleanup too even not
> for that purpose.
I've added the series, except 6-8, the dm parts. I updated some of the
descriptions/subjects to read a little better.
--
Jens Axboe
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-11-22 15:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-11 12:05 [PATCH 00/12] block: cleanup direct access to bvec table Ming Lei
2016-11-11 12:05 ` [PATCH 04/12] target: avoid to access .bi_vcnt directly Ming Lei
2016-11-12 21:37 ` Sagi Grimberg
2016-11-22 15:53 ` [PATCH 00/12] block: cleanup direct access to bvec table Jens Axboe
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).