diff options
author | Shilong Wang <wangshilong1991@gmail.com> | 2014-10-07 18:44:35 -0400 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-11-20 20:14:27 -0500 |
commit | 4bcbb33255131adbe481c0467df26d654ce3bc78 (patch) | |
tree | 13e3cd9b2f2cbd7e9380ffedeef1a139534ea50e /fs/btrfs/dev-replace.c | |
parent | 7bdcefc103849386ef7f3029dd94ecfd4a822a67 (diff) |
Btrfs: fix incorrect compression ratio detection
Steps to reproduce:
# mkfs.btrfs -f /dev/sdb
# mount -t btrfs /dev/sdb /mnt -o compress=lzo
# dd if=/dev/zero of=/mnt/data bs=$((33*4096)) count=1
after previous steps, inode will be detected as bad compression ratio,
and NOCOMPRESS flag will be set for that inode.
Reason is that compress have a max limit pages every time(128K), if a
132k write in, it will be splitted into two write(128k+4k), this bug
is a leftover for commit 68bb462d42a(Btrfs: don't compress for a small write)
Fix this problem by checking every time before compression, if it is a
small write(<=blocksize), we bail out and fall into nocompression directly.
Signed-off-by: Wang Shilong <wangshilong1991@gmail.com>
Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions