|
@@ -459,16 +459,18 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
|
|
|
|
|
|
BUFFER_TRACE(bh, "get_write_access");
|
|
BUFFER_TRACE(bh, "get_write_access");
|
|
err = ext4_journal_get_write_access(handle, bh);
|
|
err = ext4_journal_get_write_access(handle, bh);
|
|
- if (err)
|
|
|
|
|
|
+ if (err) {
|
|
|
|
+ brelse(bh);
|
|
return err;
|
|
return err;
|
|
|
|
+ }
|
|
ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n",
|
|
ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n",
|
|
first_cluster, first_cluster - start, count2);
|
|
first_cluster, first_cluster - start, count2);
|
|
ext4_set_bits(bh->b_data, first_cluster - start, count2);
|
|
ext4_set_bits(bh->b_data, first_cluster - start, count2);
|
|
|
|
|
|
err = ext4_handle_dirty_metadata(handle, NULL, bh);
|
|
err = ext4_handle_dirty_metadata(handle, NULL, bh);
|
|
|
|
+ brelse(bh);
|
|
if (unlikely(err))
|
|
if (unlikely(err))
|
|
return err;
|
|
return err;
|
|
- brelse(bh);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|