|
@@ -394,6 +394,14 @@ static noinline int compress_file_range(struct inode *inode,
|
|
(start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
|
|
(start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
|
|
btrfs_add_inode_defrag(NULL, inode);
|
|
btrfs_add_inode_defrag(NULL, inode);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * skip compression for a small file range(<=blocksize) that
|
|
|
|
+ * isn't an inline extent, since it dosen't save disk space at all.
|
|
|
|
+ */
|
|
|
|
+ if ((end - start + 1) <= blocksize &&
|
|
|
|
+ (start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
|
|
|
|
+ goto cleanup_and_bail_uncompressed;
|
|
|
|
+
|
|
actual_end = min_t(u64, isize, end + 1);
|
|
actual_end = min_t(u64, isize, end + 1);
|
|
again:
|
|
again:
|
|
will_compress = 0;
|
|
will_compress = 0;
|