Displaying 4 results from an estimated 4 matches for "allowed_chunk_alloc".
2009 Mar 20
1
[PATCH 2/4] Btrfs: clean up find_free_extent
...btrfs_trans_handle *trans,
struct btrfs_root *root = orig_root->fs_info->extent_root;
u64 total_needed = num_bytes;
u64 *last_ptr = NULL;
- u64 last_wanted = 0;
struct btrfs_block_group_cache *block_group = NULL;
- int chunk_alloc_done = 0;
int empty_cluster = 2 * 1024 * 1024;
int allowed_chunk_alloc = 0;
- struct list_head *head = NULL, *cur = NULL;
- int loop = 0;
- int extra_loop = 0;
+ int using_hint = 0;
struct btrfs_space_info *space_info;
WARN_ON(num_bytes < root->sectorsize);
@@ -2567,6 +2563,8 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans,
ins-&...
2008 Oct 10
1
[PATCH] fix enospc when there is plenty of space
...nfo->extent_root;
- struct btrfs_fs_info *info = root->fs_info;
u64 total_needed = num_bytes;
u64 *last_ptr = NULL;
- struct btrfs_block_group_cache *block_group;
+ struct btrfs_block_group_cache *block_group = NULL;
int chunk_alloc_done = 0;
int empty_cluster = 2 * 1024 * 1024;
int allowed_chunk_alloc = 0;
+ struct list_head *head = NULL, *cur = NULL;
+ int loop = 0;
+ struct btrfs_space_info *space_info;
WARN_ON(num_bytes < root->sectorsize);
btrfs_set_key_type(ins, BTRFS_EXTENT_ITEM_KEY);
+ ins->objectid = 0;
+ ins->offset = 0;
if (orig_root->ref_cows || empty_size)...
2008 Sep 30
0
[PATCH] fix seekiness due to finding the wrong block group
...last_ptr)) {
if (search_start != orig_search_start) {
- if (last_ptr && *last_ptr)
+ if (last_ptr && *last_ptr) {
+ total_needed += empty_cluster;
*last_ptr = 0;
+ }
search_start = orig_search_start;
goto new_group;
} else if (!chunk_alloc_done && allowed_chunk_alloc) {
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...;metadata_ratio))
@@ -3737,7 +3723,7 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans,
space_info = __find_space_info(root->fs_info, data);
- if (orig_root->ref_cows || empty_size)
+ if ((orig_root->ref_cows || empty_size) && !trans->is_relocate)
allowed_chunk_alloc = 1;
if (data & BTRFS_BLOCK_GROUP_METADATA) {
@@ -4058,26 +4044,32 @@ static void dump_space_info(struct btrfs_space_info *info, u64 bytes)
printk(KERN_INFO "space_info has %llu free, is %sfull\n",
(unsigned long long)(info->total_bytes - info->bytes_used -
-...