On Sat, Jun 9, 2018 at 2:36 PM Ming Lei <ming.lei@xxxxxxxxxx> wrote: > > Now multipage bvec is supported, and some helpers may return page by > page, and some may return segment by segment, this patch documents the > usage for helping us use them correctly. > > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- > Documentation/block/biovecs.txt | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/Documentation/block/biovecs.txt b/Documentation/block/biovecs.txt > index 25689584e6e0..3ab72566141f 100644 > --- a/Documentation/block/biovecs.txt > +++ b/Documentation/block/biovecs.txt > @@ -117,3 +117,33 @@ Other implications: > size limitations and the limitations of the underlying devices. Thus > there's no need to define ->merge_bvec_fn() callbacks for individual block > drivers. > + > +Usage of helpers: > +================= > + > +* The following helpers, whose names have the suffix "_all", can only be > +used on non-BIO_CLONED bio, and usually they are used by filesystem code, > +and driver shouldn't use them because bio may have been split before they > +got to the driver: > + > + bio_for_each_chunk_segment_all() > + bio_for_each_chunk_all() > + bio_pages_all() > + bio_first_bvec_all() > + bio_first_page_all() > + bio_last_bvec_all() > + > +* The following helpers iterate bio page by page, and the local variable of > +'struct bio_vec' or the reference records single page io vector during the > +iteration: > + > + bio_for_each_segment() > + bio_for_each_segment_all() bio_for_each_segment_all() is removed, isn't it? > + > +* The following helpers iterate bio chunk by chunk, and each chunk may > +include multiple physically contiguous pages, and the local variable of > +'struct bio_vec' or the reference records multi page io vector during the > +iteration: > + > + bio_for_each_chunk() > + bio_for_each_chunk_all() > -- > 2.9.5 > -- GIOH KIM Linux Kernel Entwickler ProfitBricks GmbH Greifswalder Str. 207 D - 10405 Berlin Tel: +49 176 2697 8962 Fax: +49 30 577 008 299 Email: gi-oh.kim@xxxxxxxxxxxxxxxx URL: https://www.profitbricks.de Sitz der Gesellschaft: Berlin Registergericht: Amtsgericht Charlottenburg, HRB 125506 B Geschäftsführer: Achim Weiss, Matthias Steinberg, Christoph Steffens