New in this version:
- Refactor the incore extent map manipulations to use a cursor instead of
  directly modifying extent data.
- Refactor the incore extent map cursor to use an in-memory btree instead
  of a single high-order allocation.  This eliminates a major source of
  complaints about insufficient memory when opening a heavily fragmented
  file into a system whose memory is also heavily fragmented.
- Fix a longstanding bug where deleting a file with a complex extended
  attribute btree incorrectly handled memory pointers, which could lead
  to memory corruption.
- Improve metadata validation to eliminate crashing problems found while
  fuzzing xfs.
- Move the error injection tag definitions into libxfs to be shared with
  userspace components.
- Fix some log recovery bugs where we'd underflow log block position
  vector and incorrectly fail log recovery.
- Drain the buffer lru after log recovery to force recovered buffers back
  through the verifiers after mount.  On a v4 filesystem the log never
  attaches verifiers during log replay (v5 does), so we could end up with
  buffers marked verified but without having ever been verified.
- Fix various other bugs.
- Introduce the first part of a new online fsck tool.  The new fsck tool
  will be able to iterate every piece of metadata in the filesystem to
  look for obvious errors and corruptions.  In the next release cycle
  the checking will be extended to cross-reference with the other fs
  metadata, so this feature should only be used by the developers in the
  mean time.
xfs: on failed mount, force-reclaim inodes after unmounting quota controls

When mounting fails, we must force-reclaim inodes (and disable delayed
reclaim) /after/ the realtime and quota control have let go of the
realtime and quota inodes.  Without this, we corrupt the timer list and
cause other weird problems.

Found by xfs/376 fuzzing u3.bmbt[0].lastoff on an rmap filesystem to
force a bogus post-eof extent reclaim that causes the fs to go down.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
1 file changed