summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2011-05-04 11:11:17 -0400
committerJosef Bacik <josef@redhat.com>2011-05-23 13:03:09 -0400
commitaf60bed24eb0e3b6d93eaa6bb395a5721e6c09a8 (patch)
tree499aaa2a1ca372816885752fcd1769e3e9a0487a
parentfcb80c2affd63237cff5b34cba5756be7c976a5a (diff)
downloadop-kernel-dev-af60bed24eb0e3b6d93eaa6bb395a5721e6c09a8.zip
op-kernel-dev-af60bed24eb0e3b6d93eaa6bb395a5721e6c09a8.tar.gz
Btrfs: set range_start to the right start in count_range_bits
In count_range_bits we are adjusting total_bytes based on the range we are searching for, but we don't adjust the range start according to the range we are searching for, which makes for weird results. For example, if the range [0-8192] is set DELALLOC, but I search for 4096-8192, I will get back 4096 for the number of bytes found, but the range_start will be 0, which makes it look like the range is [0-4096]. So instead set range_start = max(cur_start, state->start). This makes everything come out right. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
-rw-r--r--fs/btrfs/extent_io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index ba41da5..b5f6f22 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1480,7 +1480,7 @@ u64 count_range_bits(struct extent_io_tree *tree,
if (total_bytes >= max_bytes)
break;
if (!found) {
- *start = state->start;
+ *start = max(cur_start, state->start);
found = 1;
}
last = state->end;
OpenPOWER on IntegriCloud