Btrfs: Don't try to compress pages past i_size
authorChris Mason <chris.mason@oracle.com>
Wed, 4 Feb 2009 14:31:06 +0000 (09:31 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 4 Feb 2009 14:31:06 +0000 (09:31 -0500)
commitf03d9301f15fb69cdf1eb59d53c9fb72f68ecccc
tree2299a89d213e9fa5f616a5bb0b2125a3c632da97
parent811449496b3e3caa9a8cf43feacbade0153324f2
Btrfs: Don't try to compress pages past i_size

The compression code had some checks to make sure we were only
compressing bytes inside of i_size, but it wasn't catching every
case.  To make things worse, some incorrect math about the number
of bytes remaining would make it try to compress more pages than the
file really had.

The fix used here is to fall back to the non-compression code in this
case, which does all the proper cleanup of delalloc and other accounting.

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