瀏覽代碼

Btrfs: small fixes for find_lock_delalloc_range.

There is a 'finish_wait', but no 'prepare_to_wait' . So I think that
the 'prepare_to_wait' is missing. The second change is  according to
the name of variable.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Yan 18 年之前
父節點
當前提交
944746ec75
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      fs/btrfs/extent_map.c

+ 3 - 1
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;
 	}