Thread (57 messages) 57 messages, 5 authors, 2018-06-21

Re: [PATCH V6 30/30] block: document usage of bio iterator helpers

From: Gi-Oh Kim <hidden>
Date: 2018-06-15 15:43:22
Also in: linux-fsdevel, linux-mm, lkml

On Sat, Jun 9, 2018 at 2:36 PM Ming Lei [off-list ref] wrote:
quoted hunk ↗ jump to hunk
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 <redacted>
---
 Documentation/block/biovecs.txt | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
diff --git a/Documentation/block/biovecs.txt b/Documentation/block/biovec=
s.txt
quoted hunk ↗ jump to hunk
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
quoted hunk ↗ jump to hunk
    drivers.
+
+Usage of helpers:
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+* 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 the=
y
quoted hunk ↗ jump to hunk
+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 t=
he
quoted hunk ↗ jump to hunk
+iteration:
+
+       bio_for_each_segment()
+       bio_for_each_segment_all()
bio_for_each_segment_all() is removed, isn't it?
quoted hunk ↗ jump to hunk
+
+* 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 th=
e
+iteration:
+
+       bio_for_each_chunk()
+       bio_for_each_chunk_all()
--
2.9.5

--=20
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@profitbricks.com
URL:      https://www.profitbricks.de

Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Gesch=C3=A4ftsf=C3=BChrer: Achim Weiss, Matthias Steinberg, Christoph Steff=
ens
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help