Skip to content

Commit c60ac0f

Browse files
committed
btrfs: drop unnecessary offset_in_page in extent buffer helpers
Helpers that iterate over extent buffer pages set up several variables, one of them is finding out offset of the extent buffer start within a page. Right now we have extent buffers aligned to page sizes so this is effectively storing zero. This makes the code harder the follow and can be simplified. The same change is done in all the helpers: * remove: size_t start_offset = offset_in_page(eb->start); * simplify code using start_offset Reviewed-by: Johannes Thumshirn <[email protected]> Signed-off-by: David Sterba <[email protected]>
1 parent 2b48966 commit c60ac0f

File tree

1 file changed

+21
-30
lines changed

1 file changed

+21
-30
lines changed

fs/btrfs/extent_io.c

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5622,8 +5622,7 @@ void read_extent_buffer(const struct extent_buffer *eb, void *dstv,
56225622
struct page *page;
56235623
char *kaddr;
56245624
char *dst = (char *)dstv;
5625-
size_t start_offset = offset_in_page(eb->start);
5626-
unsigned long i = (start_offset + start) >> PAGE_SHIFT;
5625+
unsigned long i = start >> PAGE_SHIFT;
56275626

56285627
if (start + len > eb->len) {
56295628
WARN(1, KERN_ERR "btrfs bad mapping eb start %llu len %lu, wanted %lu %lu\n",
@@ -5632,7 +5631,7 @@ void read_extent_buffer(const struct extent_buffer *eb, void *dstv,
56325631
return;
56335632
}
56345633

5635-
offset = offset_in_page(start_offset + start);
5634+
offset = offset_in_page(start);
56365635

56375636
while (len > 0) {
56385637
page = eb->pages[i];
@@ -5657,14 +5656,13 @@ int read_extent_buffer_to_user(const struct extent_buffer *eb,
56575656
struct page *page;
56585657
char *kaddr;
56595658
char __user *dst = (char __user *)dstv;
5660-
size_t start_offset = offset_in_page(eb->start);
5661-
unsigned long i = (start_offset + start) >> PAGE_SHIFT;
5659+
unsigned long i = start >> PAGE_SHIFT;
56625660
int ret = 0;
56635661

56645662
WARN_ON(start > eb->len);
56655663
WARN_ON(start + len > eb->start + eb->len);
56665664

5667-
offset = offset_in_page(start_offset + start);
5665+
offset = offset_in_page(start);
56685666

56695667
while (len > 0) {
56705668
page = eb->pages[i];
@@ -5693,14 +5691,13 @@ int memcmp_extent_buffer(const struct extent_buffer *eb, const void *ptrv,
56935691
struct page *page;
56945692
char *kaddr;
56955693
char *ptr = (char *)ptrv;
5696-
size_t start_offset = offset_in_page(eb->start);
5697-
unsigned long i = (start_offset + start) >> PAGE_SHIFT;
5694+
unsigned long i = start >> PAGE_SHIFT;
56985695
int ret = 0;
56995696

57005697
WARN_ON(start > eb->len);
57015698
WARN_ON(start + len > eb->start + eb->len);
57025699

5703-
offset = offset_in_page(start_offset + start);
5700+
offset = offset_in_page(start);
57045701

57055702
while (len > 0) {
57065703
page = eb->pages[i];
@@ -5749,13 +5746,12 @@ void write_extent_buffer(const struct extent_buffer *eb, const void *srcv,
57495746
struct page *page;
57505747
char *kaddr;
57515748
char *src = (char *)srcv;
5752-
size_t start_offset = offset_in_page(eb->start);
5753-
unsigned long i = (start_offset + start) >> PAGE_SHIFT;
5749+
unsigned long i = start >> PAGE_SHIFT;
57545750

57555751
WARN_ON(start > eb->len);
57565752
WARN_ON(start + len > eb->start + eb->len);
57575753

5758-
offset = offset_in_page(start_offset + start);
5754+
offset = offset_in_page(start);
57595755

57605756
while (len > 0) {
57615757
page = eb->pages[i];
@@ -5779,13 +5775,12 @@ void memzero_extent_buffer(const struct extent_buffer *eb, unsigned long start,
57795775
size_t offset;
57805776
struct page *page;
57815777
char *kaddr;
5782-
size_t start_offset = offset_in_page(eb->start);
5783-
unsigned long i = (start_offset + start) >> PAGE_SHIFT;
5778+
unsigned long i = start >> PAGE_SHIFT;
57845779

57855780
WARN_ON(start > eb->len);
57865781
WARN_ON(start + len > eb->start + eb->len);
57875782

5788-
offset = offset_in_page(start_offset + start);
5783+
offset = offset_in_page(start);
57895784

57905785
while (len > 0) {
57915786
page = eb->pages[i];
@@ -5825,12 +5820,11 @@ void copy_extent_buffer(const struct extent_buffer *dst,
58255820
size_t offset;
58265821
struct page *page;
58275822
char *kaddr;
5828-
size_t start_offset = offset_in_page(dst->start);
5829-
unsigned long i = (start_offset + dst_offset) >> PAGE_SHIFT;
5823+
unsigned long i = dst_offset >> PAGE_SHIFT;
58305824

58315825
WARN_ON(src->len != dst_len);
58325826

5833-
offset = offset_in_page(start_offset + dst_offset);
5827+
offset = offset_in_page(dst_offset);
58345828

58355829
while (len > 0) {
58365830
page = dst->pages[i];
@@ -5866,7 +5860,6 @@ static inline void eb_bitmap_offset(const struct extent_buffer *eb,
58665860
unsigned long *page_index,
58675861
size_t *page_offset)
58685862
{
5869-
size_t start_offset = offset_in_page(eb->start);
58705863
size_t byte_offset = BIT_BYTE(nr);
58715864
size_t offset;
58725865

@@ -5875,7 +5868,7 @@ static inline void eb_bitmap_offset(const struct extent_buffer *eb,
58755868
* the bitmap item in the extent buffer + the offset of the byte in the
58765869
* bitmap item.
58775870
*/
5878-
offset = start_offset + start + byte_offset;
5871+
offset = start + byte_offset;
58795872

58805873
*page_index = offset >> PAGE_SHIFT;
58815874
*page_offset = offset_in_page(offset);
@@ -6022,7 +6015,6 @@ void memcpy_extent_buffer(const struct extent_buffer *dst,
60226015
size_t cur;
60236016
size_t dst_off_in_page;
60246017
size_t src_off_in_page;
6025-
size_t start_offset = offset_in_page(dst->start);
60266018
unsigned long dst_i;
60276019
unsigned long src_i;
60286020

@@ -6040,11 +6032,11 @@ void memcpy_extent_buffer(const struct extent_buffer *dst,
60406032
}
60416033

60426034
while (len > 0) {
6043-
dst_off_in_page = offset_in_page(start_offset + dst_offset);
6044-
src_off_in_page = offset_in_page(start_offset + src_offset);
6035+
dst_off_in_page = offset_in_page(dst_offset);
6036+
src_off_in_page = offset_in_page(src_offset);
60456037

6046-
dst_i = (start_offset + dst_offset) >> PAGE_SHIFT;
6047-
src_i = (start_offset + src_offset) >> PAGE_SHIFT;
6038+
dst_i = dst_offset >> PAGE_SHIFT;
6039+
src_i = src_offset >> PAGE_SHIFT;
60486040

60496041
cur = min(len, (unsigned long)(PAGE_SIZE -
60506042
src_off_in_page));
@@ -6070,7 +6062,6 @@ void memmove_extent_buffer(const struct extent_buffer *dst,
60706062
size_t src_off_in_page;
60716063
unsigned long dst_end = dst_offset + len - 1;
60726064
unsigned long src_end = src_offset + len - 1;
6073-
size_t start_offset = offset_in_page(dst->start);
60746065
unsigned long dst_i;
60756066
unsigned long src_i;
60766067

@@ -6091,11 +6082,11 @@ void memmove_extent_buffer(const struct extent_buffer *dst,
60916082
return;
60926083
}
60936084
while (len > 0) {
6094-
dst_i = (start_offset + dst_end) >> PAGE_SHIFT;
6095-
src_i = (start_offset + src_end) >> PAGE_SHIFT;
6085+
dst_i = dst_end >> PAGE_SHIFT;
6086+
src_i = src_end >> PAGE_SHIFT;
60966087

6097-
dst_off_in_page = offset_in_page(start_offset + dst_end);
6098-
src_off_in_page = offset_in_page(start_offset + src_end);
6088+
dst_off_in_page = offset_in_page(dst_end);
6089+
src_off_in_page = offset_in_page(src_end);
60996090

61006091
cur = min_t(unsigned long, len, src_off_in_page + 1);
61016092
cur = min(cur, dst_off_in_page + 1);

0 commit comments

Comments
 (0)