diff options
author | Chris Mason <clm@fb.com> | 2014-01-04 06:07:00 +0100 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-01-29 16:06:29 +0100 |
commit | 514ac8ad8793a097c0c9d89202c642479d6dfa34 (patch) | |
tree | 7b94b18dce144eb4be4e45102c00071c02c6e2b3 /fs/btrfs/file.c | |
parent | Btrfs: fix btrfs_search_slot_for_read backwards iteration (diff) | |
download | linux-514ac8ad8793a097c0c9d89202c642479d6dfa34.tar.xz linux-514ac8ad8793a097c0c9d89202c642479d6dfa34.zip |
Btrfs: don't use ram_bytes for uncompressed inline items
If we truncate an uncompressed inline item, ram_bytes isn't updated to reflect
the new size. The fixe uses the size directly from the item header when
reading uncompressed inlines, and also fixes truncate to update the
size as it goes.
Reported-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
CC: stable@vger.kernel.org
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 3dfd8db0e243..0165b8672f09 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -772,7 +772,8 @@ next_slot: btrfs_file_extent_num_bytes(leaf, fi); } else if (extent_type == BTRFS_FILE_EXTENT_INLINE) { extent_end = key.offset + - btrfs_file_extent_inline_len(leaf, fi); + btrfs_file_extent_inline_len(leaf, + path->slots[0], fi); } else { WARN_ON(1); extent_end = search_start; |