summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorYan <yanzheng@21cn.com>2007-12-14 16:14:42 (GMT)
committerChris Mason <chris.mason@oracle.com>2008-09-25 15:03:58 (GMT)
commit6e3b96668eb34da6060a5189e6a73e9d62a3b178 (patch)
tree6aba5e1e12c71eef597f5d11b6893ab381ef76e7 /fs
parentf6dbff55d77dee363c22873481db54d3bada3ea6 (diff)
downloadlinux-fsl-qoriq-6e3b96668eb34da6060a5189e6a73e9d62a3b178.tar.xz
Off by one fix for btrfs_drop_extents
One of my old patches introduces a new bug to btrfs_drop_extents(changeset 275). Inline extents are not truncated properly when "extent_end == end", it can trigger the BUG_ON at file.c:600. I hope I don't introduce new bug this time. --- Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/file.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 1cc4d28..a280b95 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -481,8 +481,9 @@ next_slot:
search_start = (extent_end + mask) & ~mask;
} else
search_start = extent_end;
- if (end < extent_end && start > key.offset && found_inline) {
+ if (end <= extent_end && start >= key.offset && found_inline) {
*hint_byte = EXTENT_MAP_INLINE;
+ continue;
}
if (end < extent_end && end >= key.offset) {
if (found_extent) {