Lines Matching refs:bio
7 As of 3.13, biovecs should never be modified after a bio has been submitted.
9 the iterator will be modified as the bio is completed, not the biovec.
11 More specifically, old code that needed to partially complete a bio would
17 partially complete a bio is segregated into struct bvec_iter: bi_sector,
37 wrapper around bio_advance_iter() that operates on bio->bi_iter, and also
38 advances the bio integrity's iter if present.
41 a pointer to a biovec, not a bio; this is used by the bio integrity code.
50 exactly one bvec at a time - for example, bio_copy_data() in fs/bio.c,
51 which copies the contents of one bio into another. Because the biovecs
61 * Before, any code that might need to use the biovec after the bio had been
70 reached the end of a bio, not bi_vcnt - and the bio_iovec() macro takes
75 size bios - because the new bio can share the old bio's biovec.
77 Care must be taken to ensure the biovec isn't freed while the split bio is
78 still using it, in case the original bio completes first, though. Using
85 It used to be the case that submitting a partially completed bio would work
99 I.e. instead of using bio_iovec_idx() (or bio->bi_iovec[bio->bi_idx]), you
105 doesn't actually own the bio. The reason is twofold: firstly, it's not
106 actually needed for iterating over the bio anymore - we only use bi_size.
107 Secondly, when cloning a bio and reusing (a portion of) the original bio's
108 biovec, in order to calculate bi_vcnt for the new bio we'd have to iterate
109 over all the biovecs in the new bio - which is silly as it's not needed.