Btrfs: Enable delalloc accounting
Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 6999b81..624aabc 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -262,7 +262,7 @@
{
if (tree->ops && tree->ops->set_bit_hook) {
tree->ops->set_bit_hook(tree->mapping->host, state->start,
- state->end, bits);
+ state->end, state->state, bits);
}
}
@@ -272,7 +272,7 @@
{
if (tree->ops && tree->ops->set_bit_hook) {
tree->ops->clear_bit_hook(tree->mapping->host, state->start,
- state->end, bits);
+ state->end, state->state, bits);
}
}
@@ -298,10 +298,10 @@
}
if (bits & EXTENT_DIRTY)
tree->dirty_bytes += end - start + 1;
+ set_state_cb(tree, state, bits);
state->state |= bits;
state->start = start;
state->end = end;
- set_state_cb(tree, state, bits);
node = tree_insert(&tree->state, end, &state->rb_node);
if (node) {
struct extent_state *found;
@@ -369,8 +369,8 @@
WARN_ON(range > tree->dirty_bytes);
tree->dirty_bytes -= range;
}
- state->state &= ~bits;
clear_state_cb(tree, state, bits);
+ state->state &= ~bits;
if (wake)
wake_up(&state->wq);
if (delete || state->state == 0) {
@@ -574,8 +574,8 @@
u64 range = state->end - state->start + 1;
tree->dirty_bytes += range;
}
- state->state |= bits;
set_state_cb(tree, state, bits);
+ state->state |= bits;
}
/*
@@ -997,8 +997,8 @@
free_extent_state(state);
goto search_again;
}
- state->state |= EXTENT_LOCKED;
set_state_cb(tree, state, EXTENT_LOCKED);
+ state->state |= EXTENT_LOCKED;
if (!found)
*start = state->start;
found++;
@@ -1497,8 +1497,8 @@
} else {
state = NULL;
}
- clear->state |= EXTENT_UPTODATE;
set_state_cb(tree, clear, EXTENT_UPTODATE);
+ clear->state |= EXTENT_UPTODATE;
clear_state_bit(tree, clear, EXTENT_LOCKED,
1, 0);
if (cur == start)