diff options
Diffstat (limited to 'include/linux/bvec.h')
-rw-r--r-- | include/linux/bvec.h | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/include/linux/bvec.h b/include/linux/bvec.h index 307bbda62b7b..44b0f4684190 100644 --- a/include/linux/bvec.h +++ b/include/linux/bvec.h | |||
@@ -51,11 +51,6 @@ struct bvec_iter_all { | |||
51 | unsigned done; | 51 | unsigned done; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | static inline struct page *bvec_nth_page(struct page *page, int idx) | ||
55 | { | ||
56 | return idx == 0 ? page : nth_page(page, idx); | ||
57 | } | ||
58 | |||
59 | /* | 54 | /* |
60 | * various member access, note that bio_data should of course not be used | 55 | * various member access, note that bio_data should of course not be used |
61 | * on highmem page vectors | 56 | * on highmem page vectors |
@@ -92,8 +87,8 @@ static inline struct page *bvec_nth_page(struct page *page, int idx) | |||
92 | PAGE_SIZE - bvec_iter_offset((bvec), (iter))) | 87 | PAGE_SIZE - bvec_iter_offset((bvec), (iter))) |
93 | 88 | ||
94 | #define bvec_iter_page(bvec, iter) \ | 89 | #define bvec_iter_page(bvec, iter) \ |
95 | bvec_nth_page(mp_bvec_iter_page((bvec), (iter)), \ | 90 | (mp_bvec_iter_page((bvec), (iter)) + \ |
96 | mp_bvec_iter_page_idx((bvec), (iter))) | 91 | mp_bvec_iter_page_idx((bvec), (iter))) |
97 | 92 | ||
98 | #define bvec_iter_bvec(bvec, iter) \ | 93 | #define bvec_iter_bvec(bvec, iter) \ |
99 | ((struct bio_vec) { \ | 94 | ((struct bio_vec) { \ |
@@ -157,7 +152,7 @@ static inline void mp_bvec_next_segment(const struct bio_vec *bvec, | |||
157 | struct bio_vec *bv = &iter_all->bv; | 152 | struct bio_vec *bv = &iter_all->bv; |
158 | 153 | ||
159 | if (bv->bv_page) { | 154 | if (bv->bv_page) { |
160 | bv->bv_page = nth_page(bv->bv_page, 1); | 155 | bv->bv_page++; |
161 | bv->bv_offset = 0; | 156 | bv->bv_offset = 0; |
162 | } else { | 157 | } else { |
163 | bv->bv_page = bvec->bv_page; | 158 | bv->bv_page = bvec->bv_page; |
@@ -177,7 +172,7 @@ static inline void mp_bvec_last_segment(const struct bio_vec *bvec, | |||
177 | unsigned total = bvec->bv_offset + bvec->bv_len; | 172 | unsigned total = bvec->bv_offset + bvec->bv_len; |
178 | unsigned last_page = (total - 1) / PAGE_SIZE; | 173 | unsigned last_page = (total - 1) / PAGE_SIZE; |
179 | 174 | ||
180 | seg->bv_page = bvec_nth_page(bvec->bv_page, last_page); | 175 | seg->bv_page = bvec->bv_page + last_page; |
181 | 176 | ||
182 | /* the whole segment is inside the last page */ | 177 | /* the whole segment is inside the last page */ |
183 | if (bvec->bv_offset >= last_page * PAGE_SIZE) { | 178 | if (bvec->bv_offset >= last_page * PAGE_SIZE) { |