linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ming Lei <ming.lei@redhat.com>
To: Jens Axboe <axboe@fb.com>, Christoph Hellwig <hch@infradead.org>,
	Huang Ying <ying.huang@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>
Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	Ming Lei <ming.lei@redhat.com>
Subject: [PATCH v2 19/51] block: comments on bio_for_each_segment[_all]
Date: Mon, 26 Jun 2017 20:10:02 +0800	[thread overview]
Message-ID: <20170626121034.3051-20-ming.lei@redhat.com> (raw)
In-Reply-To: <20170626121034.3051-1-ming.lei@redhat.com>

This patch clarifies the fact that even though both
bio_for_each_segment() and bio_for_each_segment_all()
are named as _segment/_segment_all, they still return
one page in each vector, instead of real segment(multipage bvec).

With comming multipage bvec, both the two helpers
are capable of returning real segment(multipage bvec),
but the callers(users) of the two helpers may not be
capable of handling of the multipage bvec or real
segment, so we still keep the interfaces of the helpers
not changed. And new helpers for returning multipage bvec(real segment)
will be introduced later.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 include/linux/bio.h | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/linux/bio.h b/include/linux/bio.h
index 4907bea03908..d425be4d1ced 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -155,7 +155,10 @@ static inline void *bio_data(struct bio *bio)
 
 /*
  * drivers should _never_ use the all version - the bio may have been split
- * before it got to the driver and the driver won't own all of it
+ * before it got to the driver and the driver won't own all of it.
+ *
+ * Even though the helper is named as _segment_all, it still returns
+ * page one by one instead of real segment.
  */
 #define bio_for_each_segment_all(bvl, bio, i)				\
 	for (i = 0, bvl = (bio)->bi_io_vec; i < (bio)->bi_vcnt; i++, bvl++)
@@ -177,6 +180,10 @@ static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter,
 		((bvl = bio_iter_iovec((bio), (iter))), 1);		\
 	     bio_advance_iter((bio), &(iter), (bvl).bv_len))
 
+/*
+ * Even though the helper is named as _segment, it still returns
+ * page one by one instead of real segment.
+ */
 #define bio_for_each_segment(bvl, bio, iter)				\
 	__bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter)
 
-- 
2.9.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2017-06-26 12:10 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-26 12:09 [PATCH v2 00/51] block: support multipage bvec Ming Lei
2017-06-26 12:09 ` [PATCH v2 01/51] block: drbd: comment on direct access bvec table Ming Lei
2017-06-26 12:09 ` [PATCH v2 02/51] block: loop: comment on direct access to " Ming Lei
2017-06-26 12:09 ` [PATCH v2 03/51] kernel/power/swap.c: " Ming Lei
2017-06-26 12:09 ` [PATCH v2 04/51] mm: page_io.c: " Ming Lei
2017-06-26 12:09 ` [PATCH v2 05/51] fs/buffer: " Ming Lei
2017-06-26 12:09 ` [PATCH v2 06/51] f2fs: f2fs_read_end_io: " Ming Lei
2017-06-26 12:09 ` [PATCH v2 07/51] bcache: " Ming Lei
2017-06-26 12:09 ` [PATCH v2 08/51] block: comment on bio_alloc_pages() Ming Lei
2017-06-26 12:09 ` [PATCH v2 09/51] block: comment on bio_iov_iter_get_pages() Ming Lei
2017-06-26 12:09 ` [PATCH v2 10/51] dm: limit the max bio size as BIO_MAX_PAGES * PAGE_SIZE Ming Lei
2017-06-26 12:09 ` [PATCH v2 11/51] md: raid1: initialize bvec table via bio_add_page() Ming Lei
2017-06-27  9:36   ` Guoqing Jiang
2017-06-26 12:09 ` [PATCH v2 12/51] md: raid10: avoid to access bvec table directly Ming Lei
2017-06-26 12:09 ` [PATCH v2 13/51] btrfs: avoid access to .bi_vcnt directly Ming Lei
2017-06-26 12:09 ` [PATCH v2 14/51] btrfs: avoid to access bvec table directly for a cloned bio Ming Lei
2017-06-26 18:04   ` Liu Bo
2017-06-26 12:09 ` [PATCH v2 15/51] btrfs: comment on direct access bvec table Ming Lei
2017-06-26 12:09 ` [PATCH v2 16/51] block: bounce: avoid direct access to " Ming Lei
2017-06-27  6:12   ` Matthew Wilcox
2017-06-27  7:34     ` Ming Lei
2017-06-26 12:10 ` [PATCH v2 17/51] bvec_iter: introduce BVEC_ITER_ALL_INIT Ming Lei
2017-06-26 12:10 ` [PATCH v2 18/51] block: bounce: don't access bio->bi_io_vec in copy_to_high_bio_irq Ming Lei
2017-06-26 12:10 ` Ming Lei [this message]
2017-06-26 12:10 ` [PATCH v2 20/51] block: introduce multipage/single page bvec helpers Ming Lei
2017-06-26 12:10 ` [PATCH v2 21/51] block: implement sp version of bvec iterator helpers Ming Lei
2017-06-26 12:10 ` [PATCH v2 22/51] block: introduce bio_for_each_segment_mp() Ming Lei
2017-06-26 12:10 ` [PATCH v2 23/51] blk-merge: compute bio->bi_seg_front_size efficiently Ming Lei
2017-06-26 12:10 ` [PATCH v2 24/51] block: blk-merge: try to make front segments in full size Ming Lei
2017-06-26 12:10 ` [PATCH v2 25/51] block: blk-merge: remove unnecessary check Ming Lei
2017-06-26 12:10 ` [PATCH v2 26/51] block: use bio_for_each_segment_mp() to compute segments count Ming Lei
2017-06-26 12:10 ` [PATCH v2 27/51] block: use bio_for_each_segment_mp() to map sg Ming Lei
2017-06-26 12:10 ` [PATCH v2 28/51] block: introduce bvec_for_each_sp_bvec() Ming Lei
2017-06-26 12:10 ` [PATCH v2 29/51] block: bio: introduce single/multi page version of bio_for_each_segment_all() Ming Lei
2017-06-26 12:10 ` [PATCH v2 30/51] block: introduce bvec_get_last_page() Ming Lei
2017-06-26 12:10 ` [PATCH v2 31/51] fs/buffer.c: use bvec iterator to truncate the bio Ming Lei
2017-06-26 12:10 ` [PATCH v2 32/51] btrfs: use bvec_get_last_page to get bio's last page Ming Lei
2017-06-26 12:10 ` [PATCH v2 33/51] block: deal with dirtying pages for multipage bvec Ming Lei
2017-06-26 12:10 ` [PATCH v2 34/51] block: convert to singe/multi page version of bio_for_each_segment_all() Ming Lei
2017-06-26 12:10 ` [PATCH v2 35/51] bcache: convert to bio_for_each_segment_all_sp() Ming Lei
2017-06-26 12:10 ` [PATCH v2 36/51] md: raid1: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 37/51] dm-crypt: don't clear bvec->bv_page in crypt_free_buffer_pages() Ming Lei
2017-06-26 12:10 ` [PATCH v2 38/51] dm-crypt: convert to bio_for_each_segment_all_sp() Ming Lei
2017-06-26 12:10 ` [PATCH v2 39/51] fs/mpage: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 40/51] fs/block: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 41/51] fs/iomap: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 42/51] ext4: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 43/51] xfs: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 44/51] gfs2: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 45/51] f2fs: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 46/51] exofs: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 47/51] fs: crypto: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 48/51] fs/btrfs: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 49/51] fs/direct-io: " Ming Lei
2017-06-26 12:10 ` [PATCH v2 50/51] block: enable multipage bvecs Ming Lei
2017-06-26 12:10 ` [PATCH v2 51/51] block: bio: pass segments to bio if bio_add_page() is bypassed Ming Lei
2017-06-26 16:42 ` [PATCH v2 00/51] block: support multipage bvec David Sterba
2017-06-26 16:46 ` Jens Axboe

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=20170626121034.3051-20-ming.lei@redhat.com \
    --to=ming.lei@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@fb.com \
    --cc=hch@infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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).