]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: Compression corner fixes
authorChris Mason <chris.mason@oracle.com>
Fri, 31 Oct 2008 16:46:39 +0000 (12:46 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 31 Oct 2008 16:46:39 +0000 (12:46 -0400)
commit4a01201a549bee83379869e62a747a1ade19b8b3
tree81578759fe422f7b17a734b8bf16b042aa02a046
parent82394129baf15a139f040bf0098dfb7522af8f8c
Btrfs: Compression corner fixes

Make sure we keep page->mapping NULL on the pages we're getting
via alloc_page.  It gets set so a few of the callbacks can do the right
thing, but in general these pages don't have a mapping.

Don't try to truncate compressed inline items in btrfs_drop_extents.
The whole compressed item must be preserved.

Don't try to create multipage inline compressed items.  When we try to
overwrite just the first page of the file, we would have to read in and recow
all the pages after it in the same compressed inline items.  For now, only
create single page inline items.

Make sure we lock pages in the correct order during delalloc.  The
search into the state tree for delalloc bytes can return bytes before
the page we already have locked.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/compression.c
fs/btrfs/extent_io.c
fs/btrfs/file.c
fs/btrfs/inode.c