Displaying 2 results from an estimated 2 matches for "orig_search_start".
2008 Oct 10
1
[PATCH] fix enospc when there is plenty of space
...ink I finally have a hold on what the problem is, it
only happens with Metadata writes, and happens _very_ infrequently. What has to
happen is we have to allocate have allocated out of the first logical byte on
the disk, which would set last_alloc to first_logical_byte(root, 0), so
search_start == orig_search_start. We then need to allocate for normal
metadata, so BTRFS_BLOCK_GROUP_METADATA | BTRFS_BLOCK_GROUP_DUP. We will do a
block lookup for the given search_start, block_group_bits() won''t match and
we''ll go to choose another block group. However because search_start matches
orig_searc...
2008 Sep 30
0
[PATCH] fix seekiness due to finding the wrong block group
...st_block_group(info,
+ search_start);
/*
* Ok this looks a little tricky, buts its really simple. First if we
@@ -2255,8 +2258,10 @@ new_group:
if (!block_group || (!block_group_bits(block_group, data) &&
last_ptr && *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 li...