浏览代码

Btrfs: Fix test_range_bit for whole file extents

If test_range_bit finds an extent that goes all the way to (u64)-1, it
can incorrectly wrap the u64 instead of treaing it like the end of
the address space.

This just adds a check for the highest possible offset so we don't wrap.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 15 年之前
父节点
当前提交
46562cec98
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      fs/btrfs/extent_io.c

+ 4 - 0
fs/btrfs/extent_io.c

@@ -1564,6 +1564,10 @@ int test_range_bit(struct extent_io_tree *tree, u64 start, u64 end,
 			bitset = 0;
 			break;
 		}
+
+		if (state->end == (u64)-1)
+			break;
+
 		start = state->end + 1;
 		if (start > end)
 			break;