Btrfs: allocator tweaks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
cd1bc4653d
commit
28b8bb9e00
|
@ -94,9 +94,6 @@ struct buffer_head *btrfs_find_tree_block(struct btrfs_root *root, u64 blocknr)
|
||||||
} while (bh != head);
|
} while (bh != head);
|
||||||
out_unlock:
|
out_unlock:
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
if (ret) {
|
|
||||||
touch_buffer(ret);
|
|
||||||
}
|
|
||||||
page_cache_release(page);
|
page_cache_release(page);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,7 +311,10 @@ int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans, struct
|
||||||
clear_radix_bit(pinned_radix, gang[i]);
|
clear_radix_bit(pinned_radix, gang[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
root->fs_info->block_group_cache = NULL;
|
if (root->fs_info->block_group_cache) {
|
||||||
|
root->fs_info->block_group_cache->last_alloc =
|
||||||
|
root->fs_info->block_group_cache->first_free;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,7 +581,7 @@ check_failed:
|
||||||
if (last_block < search_start)
|
if (last_block < search_start)
|
||||||
last_block = search_start;
|
last_block = search_start;
|
||||||
hole_size = key.objectid - last_block;
|
hole_size = key.objectid - last_block;
|
||||||
if (hole_size > num_blocks) {
|
if (hole_size >= num_blocks) {
|
||||||
ins->objectid = last_block;
|
ins->objectid = last_block;
|
||||||
ins->offset = hole_size;
|
ins->offset = hole_size;
|
||||||
goto check_pending;
|
goto check_pending;
|
||||||
|
|
Loading…
Reference in a new issue