int block;
int pnum;
int poff;
- struct page *page;
+ struct page *page = NULL;
int ret;
struct ext4_group_info *grp;
struct ext4_sb_info *sbi = EXT4_SB(sb);
*/
ret = ext4_mb_init_group(sb, group, gfp);
if (ret)
- return ret;
+ goto err;
}
/*
page_cache_release(e4b->bd_buddy_page);
e4b->bd_buddy = NULL;
e4b->bd_bitmap = NULL;
+ ext4_warning(sb, "Error loading buddy information for %u", group);
return ret;
}
bitmap_bh = ext4_read_block_bitmap(sb, group);
if (IS_ERR(bitmap_bh)) {
err = PTR_ERR(bitmap_bh);
- ext4_error(sb, "Error %d reading block bitmap for %u",
+ ext4_warning(sb, "Error %d reading block bitmap for %u",
err, group);
return 0;
}
err = ext4_mb_load_buddy(sb, group, &e4b);
if (err) {
- ext4_error(sb, "Error loading buddy information for %u", group);
+ ext4_warning(sb, "Error loading buddy information for %u", group);
put_bh(bitmap_bh);
return 0;
}
err = ext4_mb_load_buddy(sb, group, &e4b);
if (err) {
- ext4_error(sb, "Error loading buddy information for %u",
+ ext4_warning(sb, "Error loading buddy information for %u",
group);
continue;
}
bitmap_bh = ext4_read_block_bitmap(sb, group);
if (IS_ERR(bitmap_bh)) {
err = PTR_ERR(bitmap_bh);
- ext4_error(sb, "Error %d reading block bitmap for %u",
+ ext4_warning(sb, "Error %d reading block bitmap for %u",
err, group);
ext4_mb_unload_buddy(&e4b);
continue;
group = ext4_get_group_number(sb, pa->pa_pstart);
if (ext4_mb_load_buddy(sb, group, &e4b)) {
- ext4_error(sb, "Error loading buddy information for %u",
+ ext4_warning(sb, "Error loading buddy information for %u",
group);
continue;
}
err = ext4_mb_load_buddy_gfp(sb, block_group, &e4b,
GFP_NOFS|__GFP_NOFAIL);
if (err)
- goto error_return;
+ goto error_brelse;
if ((flags & EXT4_FREE_BLOCKS_METADATA) && ext4_handle_valid(handle)) {
struct ext4_free_data *new_entry;
goto do_more;
}
error_return:
- brelse(bitmap_bh);
ext4_std_error(sb, err);
+error_brelse:
+ brelse(bitmap_bh);
return;
}
err = ext4_mb_load_buddy(sb, block_group, &e4b);
if (err)
- goto error_return;
+ goto error_brelse;
/*
* need to update group_info->bb_free and bitmap
err = ret;
error_return:
- brelse(bitmap_bh);
ext4_std_error(sb, err);
+error_brelse:
+ brelse(bitmap_bh);
return err;
}
ret = ext4_mb_load_buddy(sb, group, &e4b);
if (ret) {
- ext4_error(sb, "Error in loading buddy "
+ ext4_warning(sb, "Error in loading buddy "
"information for %u", group);
return ret;
}