From aa059191f0036a23baf3f4953647158b9bb20749 Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 1 Nov 2007 11:28:42 -0400 Subject: [PATCH] --- yaml --- r: 128523 b: refs/heads/master c: 944746ec7575258475958d858cdf3a0e4c8f7b9e h: refs/heads/master i: 128521: bf308b21737e08aacb9fdeaa23d49988e208ecf4 128519: 6ab19c10539b8e9db703d6c20e274aee9cd56569 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent_map.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index eff5c69af30d..b774fa50a285 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b97f9203b4d672c06eca50a1b1b99e4f69e1daf8 +refs/heads/master: 944746ec7575258475958d858cdf3a0e4c8f7b9e diff --git a/trunk/fs/btrfs/extent_map.c b/trunk/fs/btrfs/extent_map.c index 44be9cfd30ee..ff8881fb56d6 100644 --- a/trunk/fs/btrfs/extent_map.c +++ b/trunk/fs/btrfs/extent_map.c @@ -1044,6 +1044,8 @@ u64 find_lock_delalloc_range(struct extent_map_tree *tree, if (state->state & EXTENT_LOCKED) { DEFINE_WAIT(wait); atomic_inc(&state->refs); + prepare_to_wait(&state->wq, &wait, + TASK_UNINTERRUPTIBLE); write_unlock_irq(&tree->lock); schedule(); write_lock_irq(&tree->lock); @@ -1059,7 +1061,7 @@ u64 find_lock_delalloc_range(struct extent_map_tree *tree, node = rb_next(node); if (!node) break; - total_bytes = state->end - state->start + 1; + total_bytes += state->end - state->start + 1; if (total_bytes >= max_bytes) break; }