diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 6fed30c3f9ce..793e033cbd17 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -411,14 +411,6 @@ static noinline int compress_file_range(struct inode *inode, | |||
411 | (start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size)) | 411 | (start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size)) |
412 | btrfs_add_inode_defrag(NULL, inode); | 412 | btrfs_add_inode_defrag(NULL, inode); |
413 | 413 | ||
414 | /* | ||
415 | * skip compression for a small file range(<=blocksize) that | ||
416 | * isn't an inline extent, since it dosen't save disk space at all. | ||
417 | */ | ||
418 | if ((end - start + 1) <= blocksize && | ||
419 | (start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size)) | ||
420 | goto cleanup_and_bail_uncompressed; | ||
421 | |||
422 | actual_end = min_t(u64, isize, end + 1); | 414 | actual_end = min_t(u64, isize, end + 1); |
423 | again: | 415 | again: |
424 | will_compress = 0; | 416 | will_compress = 0; |
@@ -440,6 +432,14 @@ again: | |||
440 | 432 | ||
441 | total_compressed = actual_end - start; | 433 | total_compressed = actual_end - start; |
442 | 434 | ||
435 | /* | ||
436 | * skip compression for a small file range(<=blocksize) that | ||
437 | * isn't an inline extent, since it dosen't save disk space at all. | ||
438 | */ | ||
439 | if (total_compressed <= blocksize && | ||
440 | (start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size)) | ||
441 | goto cleanup_and_bail_uncompressed; | ||
442 | |||
443 | /* we want to make sure that amount of ram required to uncompress | 443 | /* we want to make sure that amount of ram required to uncompress |
444 | * an extent is reasonable, so we limit the total size in ram | 444 | * an extent is reasonable, so we limit the total size in ram |
445 | * of a compressed extent to 128k. This is a crucial number | 445 | * of a compressed extent to 128k. This is a crucial number |