[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJX1YtZYrRwQgASEX_CQtBEcYuk02LA=cKibsx=TitC70_=+zg@mail.gmail.com>
Date: Fri, 15 Jun 2018 17:43:22 +0200
From: Gi-Oh Kim <gi-oh.kim@...fitbricks.com>
To: ming.lei@...hat.com
Cc: Jens Axboe <axboe@...com>, hch@...radead.org,
Al Viro <viro@...iv.linux.org.uk>, kent.overstreet@...il.com,
dsterba@...e.cz, ying.huang@...el.com,
linux-kernel@...r.kernel.org, linux-block@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org, tytso@....edu,
darrick.wong@...cle.com, colyli@...e.de, fdmanana@...il.com,
rdunlap@...radead.org
Subject: Re: [PATCH V6 30/30] block: document usage of bio iterator helpers
On Sat, Jun 9, 2018 at 2:36 PM Ming Lei <ming.lei@...hat.com> 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@...hat.com>
> ---
> 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@...fitbricks.com
URL: https://www.profitbricks.de
Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss, Matthias Steinberg, Christoph Steffens
Powered by blists - more mailing lists