Skip to content

Commit fb85fc9

Browse files
committed
btrfs: kill extent_buffer_page helper
It used to be more complex but now it's just a simple array access. Signed-off-by: David Sterba <[email protected]>
1 parent a50924e commit fb85fc9

File tree

2 files changed

+26
-35
lines changed

2 files changed

+26
-35
lines changed

fs/btrfs/extent_io.c

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2064,7 +2064,7 @@ int repair_eb_io_failure(struct btrfs_root *root, struct extent_buffer *eb,
20642064
return -EROFS;
20652065

20662066
for (i = 0; i < num_pages; i++) {
2067-
struct page *p = extent_buffer_page(eb, i);
2067+
struct page *p = eb->pages[i];
20682068

20692069
ret = repair_io_failure(root->fs_info->btree_inode, start,
20702070
PAGE_CACHE_SIZE, start, p,
@@ -3580,7 +3580,7 @@ lock_extent_buffer_for_io(struct extent_buffer *eb,
35803580

35813581
num_pages = num_extent_pages(eb->start, eb->len);
35823582
for (i = 0; i < num_pages; i++) {
3583-
struct page *p = extent_buffer_page(eb, i);
3583+
struct page *p = eb->pages[i];
35843584

35853585
if (!trylock_page(p)) {
35863586
if (!flush) {
@@ -3651,7 +3651,7 @@ static noinline_for_stack int write_one_eb(struct extent_buffer *eb,
36513651
bio_flags = EXTENT_BIO_TREE_LOG;
36523652

36533653
for (i = 0; i < num_pages; i++) {
3654-
struct page *p = extent_buffer_page(eb, i);
3654+
struct page *p = eb->pages[i];
36553655

36563656
clear_page_dirty_for_io(p);
36573657
set_page_writeback(p);
@@ -3674,10 +3674,8 @@ static noinline_for_stack int write_one_eb(struct extent_buffer *eb,
36743674
}
36753675

36763676
if (unlikely(ret)) {
3677-
for (; i < num_pages; i++) {
3678-
struct page *p = extent_buffer_page(eb, i);
3679-
unlock_page(p);
3680-
}
3677+
for (; i < num_pages; i++)
3678+
unlock_page(eb->pages[i]);
36813679
}
36823680

36833681
return ret;
@@ -4464,7 +4462,7 @@ static void btrfs_release_extent_buffer_page(struct extent_buffer *eb)
44644462

44654463
do {
44664464
index--;
4467-
page = extent_buffer_page(eb, index);
4465+
page = eb->pages[index];
44684466
if (page && mapped) {
44694467
spin_lock(&page->mapping->private_lock);
44704468
/*
@@ -4646,7 +4644,8 @@ static void mark_extent_buffer_accessed(struct extent_buffer *eb,
46464644

46474645
num_pages = num_extent_pages(eb->start, eb->len);
46484646
for (i = 0; i < num_pages; i++) {
4649-
struct page *p = extent_buffer_page(eb, i);
4647+
struct page *p = eb->pages[i];
4648+
46504649
if (p != accessed)
46514650
mark_page_accessed(p);
46524651
}
@@ -4815,7 +4814,7 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
48154814
*/
48164815
SetPageChecked(eb->pages[0]);
48174816
for (i = 1; i < num_pages; i++) {
4818-
p = extent_buffer_page(eb, i);
4817+
p = eb->pages[i];
48194818
ClearPageChecked(p);
48204819
unlock_page(p);
48214820
}
@@ -4926,7 +4925,7 @@ void clear_extent_buffer_dirty(struct extent_buffer *eb)
49264925
num_pages = num_extent_pages(eb->start, eb->len);
49274926

49284927
for (i = 0; i < num_pages; i++) {
4929-
page = extent_buffer_page(eb, i);
4928+
page = eb->pages[i];
49304929
if (!PageDirty(page))
49314930
continue;
49324931

@@ -4962,7 +4961,7 @@ int set_extent_buffer_dirty(struct extent_buffer *eb)
49624961
WARN_ON(!test_bit(EXTENT_BUFFER_TREE_REF, &eb->bflags));
49634962

49644963
for (i = 0; i < num_pages; i++)
4965-
set_page_dirty(extent_buffer_page(eb, i));
4964+
set_page_dirty(eb->pages[i]);
49664965
return was_dirty;
49674966
}
49684967

@@ -4975,7 +4974,7 @@ int clear_extent_buffer_uptodate(struct extent_buffer *eb)
49754974
clear_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags);
49764975
num_pages = num_extent_pages(eb->start, eb->len);
49774976
for (i = 0; i < num_pages; i++) {
4978-
page = extent_buffer_page(eb, i);
4977+
page = eb->pages[i];
49794978
if (page)
49804979
ClearPageUptodate(page);
49814980
}
@@ -4991,7 +4990,7 @@ int set_extent_buffer_uptodate(struct extent_buffer *eb)
49914990
set_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags);
49924991
num_pages = num_extent_pages(eb->start, eb->len);
49934992
for (i = 0; i < num_pages; i++) {
4994-
page = extent_buffer_page(eb, i);
4993+
page = eb->pages[i];
49954994
SetPageUptodate(page);
49964995
}
49974996
return 0;
@@ -5031,7 +5030,7 @@ int read_extent_buffer_pages(struct extent_io_tree *tree,
50315030

50325031
num_pages = num_extent_pages(eb->start, eb->len);
50335032
for (i = start_i; i < num_pages; i++) {
5034-
page = extent_buffer_page(eb, i);
5033+
page = eb->pages[i];
50355034
if (wait == WAIT_NONE) {
50365035
if (!trylock_page(page))
50375036
goto unlock_exit;
@@ -5054,7 +5053,7 @@ int read_extent_buffer_pages(struct extent_io_tree *tree,
50545053
eb->read_mirror = 0;
50555054
atomic_set(&eb->io_pages, num_reads);
50565055
for (i = start_i; i < num_pages; i++) {
5057-
page = extent_buffer_page(eb, i);
5056+
page = eb->pages[i];
50585057
if (!PageUptodate(page)) {
50595058
ClearPageError(page);
50605059
err = __extent_read_full_page(tree, page,
@@ -5079,7 +5078,7 @@ int read_extent_buffer_pages(struct extent_io_tree *tree,
50795078
return ret;
50805079

50815080
for (i = start_i; i < num_pages; i++) {
5082-
page = extent_buffer_page(eb, i);
5081+
page = eb->pages[i];
50835082
wait_on_page_locked(page);
50845083
if (!PageUptodate(page))
50855084
ret = -EIO;
@@ -5090,7 +5089,7 @@ int read_extent_buffer_pages(struct extent_io_tree *tree,
50905089
unlock_exit:
50915090
i = start_i;
50925091
while (locked_pages > 0) {
5093-
page = extent_buffer_page(eb, i);
5092+
page = eb->pages[i];
50945093
i++;
50955094
unlock_page(page);
50965095
locked_pages--;
@@ -5116,7 +5115,7 @@ void read_extent_buffer(struct extent_buffer *eb, void *dstv,
51165115
offset = (start_offset + start) & (PAGE_CACHE_SIZE - 1);
51175116

51185117
while (len > 0) {
5119-
page = extent_buffer_page(eb, i);
5118+
page = eb->pages[i];
51205119

51215120
cur = min(len, (PAGE_CACHE_SIZE - offset));
51225121
kaddr = page_address(page);
@@ -5148,7 +5147,7 @@ int read_extent_buffer_to_user(struct extent_buffer *eb, void __user *dstv,
51485147
offset = (start_offset + start) & (PAGE_CACHE_SIZE - 1);
51495148

51505149
while (len > 0) {
5151-
page = extent_buffer_page(eb, i);
5150+
page = eb->pages[i];
51525151

51535152
cur = min(len, (PAGE_CACHE_SIZE - offset));
51545153
kaddr = page_address(page);
@@ -5197,7 +5196,7 @@ int map_private_extent_buffer(struct extent_buffer *eb, unsigned long start,
51975196
return -EINVAL;
51985197
}
51995198

5200-
p = extent_buffer_page(eb, i);
5199+
p = eb->pages[i];
52015200
kaddr = page_address(p);
52025201
*map = kaddr + offset;
52035202
*map_len = PAGE_CACHE_SIZE - offset;
@@ -5223,7 +5222,7 @@ int memcmp_extent_buffer(struct extent_buffer *eb, const void *ptrv,
52235222
offset = (start_offset + start) & (PAGE_CACHE_SIZE - 1);
52245223

52255224
while (len > 0) {
5226-
page = extent_buffer_page(eb, i);
5225+
page = eb->pages[i];
52275226

52285227
cur = min(len, (PAGE_CACHE_SIZE - offset));
52295228

@@ -5257,7 +5256,7 @@ void write_extent_buffer(struct extent_buffer *eb, const void *srcv,
52575256
offset = (start_offset + start) & (PAGE_CACHE_SIZE - 1);
52585257

52595258
while (len > 0) {
5260-
page = extent_buffer_page(eb, i);
5259+
page = eb->pages[i];
52615260
WARN_ON(!PageUptodate(page));
52625261

52635262
cur = min(len, PAGE_CACHE_SIZE - offset);
@@ -5287,7 +5286,7 @@ void memset_extent_buffer(struct extent_buffer *eb, char c,
52875286
offset = (start_offset + start) & (PAGE_CACHE_SIZE - 1);
52885287

52895288
while (len > 0) {
5290-
page = extent_buffer_page(eb, i);
5289+
page = eb->pages[i];
52915290
WARN_ON(!PageUptodate(page));
52925291

52935292
cur = min(len, PAGE_CACHE_SIZE - offset);
@@ -5318,7 +5317,7 @@ void copy_extent_buffer(struct extent_buffer *dst, struct extent_buffer *src,
53185317
(PAGE_CACHE_SIZE - 1);
53195318

53205319
while (len > 0) {
5321-
page = extent_buffer_page(dst, i);
5320+
page = dst->pages[i];
53225321
WARN_ON(!PageUptodate(page));
53235322

53245323
cur = min(len, (unsigned long)(PAGE_CACHE_SIZE - offset));
@@ -5396,8 +5395,7 @@ void memcpy_extent_buffer(struct extent_buffer *dst, unsigned long dst_offset,
53965395
cur = min_t(unsigned long, cur,
53975396
(unsigned long)(PAGE_CACHE_SIZE - dst_off_in_page));
53985397

5399-
copy_pages(extent_buffer_page(dst, dst_i),
5400-
extent_buffer_page(dst, src_i),
5398+
copy_pages(dst->pages[dst_i], dst->pages[src_i],
54015399
dst_off_in_page, src_off_in_page, cur);
54025400

54035401
src_offset += cur;
@@ -5443,8 +5441,7 @@ void memmove_extent_buffer(struct extent_buffer *dst, unsigned long dst_offset,
54435441

54445442
cur = min_t(unsigned long, len, src_off_in_page + 1);
54455443
cur = min(cur, dst_off_in_page + 1);
5446-
copy_pages(extent_buffer_page(dst, dst_i),
5447-
extent_buffer_page(dst, src_i),
5444+
copy_pages(dst->pages[dst_i], dst->pages[src_i],
54485445
dst_off_in_page - cur + 1,
54495446
src_off_in_page - cur + 1, cur);
54505447

fs/btrfs/extent_io.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,6 @@ static inline unsigned long num_extent_pages(u64 start, u64 len)
279279
(start >> PAGE_CACHE_SHIFT);
280280
}
281281

282-
static inline struct page *extent_buffer_page(struct extent_buffer *eb,
283-
unsigned long i)
284-
{
285-
return eb->pages[i];
286-
}
287-
288282
static inline void extent_buffer_get(struct extent_buffer *eb)
289283
{
290284
atomic_inc(&eb->refs);

0 commit comments

Comments
 (0)