]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
repair: do not prefetch holes in sparse inode chunks
authorBrian Foster <bfoster@redhat.com>
Tue, 23 Jun 2015 05:08:48 +0000 (15:08 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 23 Jun 2015 05:08:48 +0000 (15:08 +1000)
commit1da68317368f3439add9760a73f4ddfb62f8e3a7
treee053dbb2b51b69e96f7a2e8a0c6bfa8c11ad2a97
parenta6bb9c819e15ac9ff082a1f928c771719f46b9d2
repair: do not prefetch holes in sparse inode chunks

The repair prefetch mechanism reads all inode chunks in advance of
repair processing to improve performance. Inode buffer verification and
processing can occur within the prefetch mechanism such as when
directories are being processed. Prefetch currently assumes fully
populated inode chunks which leads to corruption errors attempting to
verify inode buffers that do not contain inodes.

Update prefetch to check the previously scanned sparse inode bits and
skip inode buffer reads of clusters that are sparse. We check sparse
state per-inode cluster because the cluster size is the min. allowable
inode chunk hole granularity.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
repair/prefetch.c