diff options
author | Yan <yanzheng@21cn.com> | 2007-11-06 16:26:28 +0100 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 17:03:57 +0200 |
commit | a273208edd55463b3bcd8b77a6fe8ba54afc6940 (patch) | |
tree | fa89bce25b3067bc2e11612c4f28ef8fec9bd27a /fs | |
parent | Btrfs: Fix u32 overflow in dirty_and_release_pages. (diff) | |
download | linux-a273208edd55463b3bcd8b77a6fe8ba54afc6940.tar.xz linux-a273208edd55463b3bcd8b77a6fe8ba54afc6940.zip |
Fix EXTENT_MAP_INLINE off by one in btrfs_drop_extents
Don't set hint_byte to EXTENT_MAP_INLINE when 'end == extent_end' or
'start == key.offset' . The inline extent will be truncated in these
cases.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/file.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index bb98f52f4ea4..5ceaed25dce1 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -475,8 +475,7 @@ 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; } if (end < extent_end && end >= key.offset) { |