mballoc: remove unncessary mb_find_buddy()
PATCH 2/5 mballoc: remove unncessary mb_find_buddy()
In __mb_check_buddy(), look at the bellowed code,
591 fstart = -1;
592 buddy = mb_find_buddy(e4b, 0, &max);
593 for (i = 0; i < max; i++) {
594 if (!mb_test_bit(i, buddy)) {
595 MB_CHECK_ASSERT(i >= e4b->bd_info->bb_first_free);
596 if (fstart == -1) {
597 fragments++;
598 fstart = i;
599 }
600 continue;
601 }
602 fstart = -1;
603 /* check used bits only */
604 for (j = 0; j < e4b->bd_blkbits + 1; j++) {
605 buddy2 = mb_find_buddy(e4b, j, &max2);
606 k = i >> j;
607 MB_CHECK_ASSERT(k < max2);
608 MB_CHECK_ASSERT(mb_test_bit(k, buddy2));
609 }
610 }
611 MB_CHECK_ASSERT(!EXT4_MB_GRP_NEED_INIT(e4b->bd_info));
612 MB_CHECK_ASSERT(e4b->bd_info->bb_fragments == fragments); 613
614 grp = ext4_get_group_info(sb, e4b->bd_group);
615 buddy = mb_find_buddy(e4b, 0, &max);
On line 592, buddy is fetched by mb_find_buddy() with order 0, between line 593 to line 615, buddy is not changed, therefore there is no need to fetch buddy again from mb_find_buddy() with order 0 again.
We can safely remove the second mb_find_buddy() on line 615.
--- fs/ext4/mballoc.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
fs/ext4/mballoc.c +0 -1
@@ -612,7 +612,6 @@ static int __mb_check_buddy(struct ext4_buddy *e4b, char *file,MB_CHECK_ASSERT (e4b->bd_info->bb_fragments == fragments); grp =ext4_get_group_info (sb, e4b->bd_group); - buddy =mb_find_buddy (e4b,0 , &max);list_for_each (cur, &grp->bb_prealloc_list) {ext4_group_t groupnr;struct ext4_prealloc_space *pa;
Signature · 1 line
1.7.3.4
Ted Ts'o
maintainerAdded to the ext4 patch queue, thanks!!
- Ted
Quoted 37 lines · Coly Li
In
__mb_check_buddy(), look at the bellowed code,591 fstart = -1; 592 buddy = mb_find_buddy(e4b, 0, &max); 593 for (i = 0; i < max; i++) { 594 if (!mb_test_bit(i, buddy)) { 595 MB_CHECK_ASSERT(i >= e4b->bd_info->bb_first_free); 596 if (fstart == -1) { 597 fragments++; 598 fstart = i; 599 } 600 continue; 601 } 602 fstart = -1; 603 /* check used bits only */ 604 for (j = 0; j < e4b->bd_blkbits + 1; j++) { 605 buddy2 = mb_find_buddy(e4b, j, &max2); 606 k = i >> j; 607 MB_CHECK_ASSERT(k < max2); 608 MB_CHECK_ASSERT(mb_test_bit(k, buddy2)); 609 } 610 } 611 MB_CHECK_ASSERT(!EXT4_MB_GRP_NEED_INIT(e4b->bd_info)); 612 MB_CHECK_ASSERT(e4b->bd_info->bb_fragments == fragments);613
614 grp =ext4_get_group_info(sb, e4b->bd_group);
615 buddy =mb_find_buddy(e4b, 0, &max);On line 592, buddy is fetched by
mb_find_buddy()with order 0, between line 593 to line 615, buddy is not changed, therefore there is no need to fetch buddy again frommb_find_buddy()with order 0 again.We can safely remove the second
mb_find_buddy()on line 615.Signed-off-by Coly Li <[email protected]>Cc Alex Tomas <[email protected]>Cc Theodore Tso <[email protected]>