Hi!
From: Ming Lei ming.lei@redhat.com
commit 3d75ca0adef4280650c6690a0c4702a74a6f3c95 upstream.
This patch introduces helpers of 'mp_bvec_iter_*' for multi-page bvec support.
The introduced helpers treate one bvec as real multi-page segment, which may include more than one pages.
The existed helpers of bvec_iter_* are interfaces for supporting current bvec iterator which is thought as single-page by drivers, fs, dm and etc. These introduced helpers will build single-page bvec in flight, so this way won't break current bio/bvec users, which needn't any change.
I don't understand why we have this in 4.19-stable. I don't see followup patches needing it, and it does not claim to fix a bug.
+#define mp_bvec_iter_bvec(bvec, iter) \ +((struct bio_vec) { \
- .bv_page = mp_bvec_iter_page((bvec), (iter)), \
- .bv_len = mp_bvec_iter_len((bvec), (iter)), \
- .bv_offset = mp_bvec_iter_offset((bvec), (iter)), \
+})
+/* For building single-page bvec in flight */
- #define bvec_iter_offset(bvec, iter) \
- (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
Plus this one is strange. IIRC preprocessor directives have to put # in column zero?
Best regards, Pavel