1.4 btrfs Improvements

  • btrfs-progs updated to 4.2.2-3.  The new version of btrfs-progs checks the compatibility of features that are supported by the kernel when using the mkfs and btrfs-convert commands. These commands are able to warn users about unsupported features. This update also fixes several bugs that were present in previous releases.

  • Handling of inline extents improved.  Methods handling the truncation of files that have inline and compressed extents have been improved to reduce the amount of metadata space required and to provide a security fix. Also, methods handling the cloning of inline extents have been fixed to prevent file corruption and potential data loss. A patch was also applied to fix cloning operations for compressed extents by checking the source clone offset and length to ensure that it falls within the source file's boundaries. (Bug IDs 22307083, 22598448, 22466327, 22589051)

  • Send operation in cloning code fixed.  A fix for a bug where snapshots would fail to send or receive across different file systems was implemented. The fix was applied to the send operation in the cloning code to handle the case where a snapshot is taken of a received subvolume and that is then used as the parent to try to receive on a different file system, due to differing UUIDs. (Bug ID 22580612)

  • COW Page Size Extents Improved.  A fix was applied to help to reduce unnecessary COW page size extent by only zeroing out the end of the page if the range requested for file allocation exceeds the size of the inode. (Bug ID 22573877)

  • File corruption triggered by faulty cloning operations fixed.  A fix was applied to ensure that clone operations on files that share extents with other files do not cover regions in the source file that may point to different extents. (Bug ID 22579887)