• Coly Li's avatar
    ext4: remove unncessary call mb_find_buddy() in debugging code · 235772da
    Coly Li authored
    In __mb_check_buddy(), look at the code below:
      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.
    Signed-off-by: default avatarColy Li <bosong.ly@taobao.com>
    Cc: Alex Tomas <alex@clusterfs.com>
    Cc: Theodore Tso <tytso@google.com>
    235772da
mballoc.c 132 KB