File System Improvements

The following file systems improvements have been made:

btrfs Updates

  • Several patches were introduced to resolve a race condition when merging the internal extent map, which caused errors to get returned when performing multiple concurrent DirectIO reads/writes.

ext4 Updates

  • A corner case that could cause a kernel panic when an incorrect memory address was calculated in one of the methods used by kfree to obtain a link, resulting in an -EIO error, has been fixed.

  • Several upstream patches were applied to fix various issues in the SEEK_HOLE implementation.

NFSv4 Updates

  • Patches were applied to fix an issue that caused system crashes on the server if a migration failed and resulted in a low reference count.

OCFS2 Updates

  • A fix is applied for an issue that caused file system corruption that could not be resolved using fsck. This issue was caused by the fact that the first cluster group descriptor is not stored at the start of the group but at an offset from the start. The code has been updated to take this into account when doing an fstrim on the first cluster group.

  • A fix was applied for an issue that caused a deadlock when there is a blocked remote lock request waiting for the lock to be down-converted. The problem was related to a change in the code to use generic POSIX ACL infrastructure which is unsuitable for use with ocfs2 inode creation with ACLs, as this code is unaware of cluster wide inode locks.

XFS Updates

  • Several upstream patches were applied to fix various issues in the SEEK_HOLE implementation.

  • Patches were applied to fix a hang that could occur while unmounting after the file system has gone offline due to storage problems or file system corruption.

  • Patches were applied to prevent any attempt to create new files if the file system is already out of space. This fix can prevent file system corruption or a resulting internal error.