On Tue, Nov 1, 2016 at 6:46 AM, Ming Lei <tom.leim...@gmail.com> wrote: > On Mon, Oct 31, 2016 at 9:59 PM, Theodore Ts'o <ty...@mit.edu> wrote: >> On Sat, Oct 29, 2016 at 04:08:44PM +0800, Ming Lei wrote: >>> This patches introduce bio_for_each_segment_all_rd() and >>> bio_for_each_segment_all_wt(). >>> >>> bio_for_each_segment_all_rd() is for replacing >>> bio_for_each_segment_all() in case the bvec from bio->bi_io_vec >>> is accessed as readonly. >>> >>> bio_for_each_segment_all_wt() is for replacing >>> bio_for_each_segment_all() in case the bvec from bio->bi_io_vec >>> need to be updated. >> >> What is _rd and _wt supposed to stand for? And speaking more > > As Christoph replied, _rd means read, which said the bvec pointed by > the iterator variable(bvec pointer) is read-only, and the bvec table > can't be written into via this usage any more. Maybe > bio_for_each_segment_all_ro is better?
Sorry for forgetting to mention one important point: - after multipage bvec is introduced, the iterated bvec pointer still points to singlge page bvec, which is generated in-flight and is readonly actually. That is the motivation about the introduction of bio_for_each_segment_all_rd(). So maybe bio_for_each_page_all_ro() is better? > > On the other hand, _wr meands write, which said the bvec pointed by > the iterator variable(bvec pointer) can be written to. Maybe we can use > original bio_for_each_segment_all() for it? For _wt(), we still can keep it as bio_for_each_segment(), which also reflects that now the iterated bvec points to one whole segment if we name _rd as bio_for_each_page_all_ro(). Thanks, Ming Lei