Christoph Hellwig 0c1d9e4a61 xfs: simplify validation of the unwritten extent bit
XFS only supports the unwritten extent bit in the data fork, and only if
the file system has a version 5 superblock or the unwritten extent
feature bit.

We currently have two routines that validate the invariant:
xfs_check_nostate_extents which return -EFSCORRUPTED when it's not met,
and xfs_validate_extent that triggers and assert in debug build.

Both of them iterate over all extents of an inode fork when called,
which isn't very efficient.

This patch instead adds a new helper that verifies the invariant one
extent at a time, and calls it from the places where we iterate over
all extents to converted them from or two the in-memory format.  The
callers then return -EFSCORRUPTED when reading invalid extents from
disk, or trigger an assert when writing them to disk.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2017-04-25 09:40:41 -07:00
..
2017-03-07 20:10:50 -08:00
2017-03-07 20:10:50 -08:00
2017-04-03 15:18:17 -07:00
2017-04-03 15:18:16 -07:00
2016-11-30 14:37:15 +11:00
2016-10-04 11:05:44 -07:00
2017-04-25 09:40:41 -07:00
2017-02-27 18:43:46 -08:00
2017-04-03 15:18:17 -07:00
2017-04-03 15:18:17 -07:00
2017-04-25 09:40:41 -07:00
2017-04-03 15:18:17 -07:00