]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
repair: scan sparse finobt records correctly
authorBrian Foster <bfoster@redhat.com>
Tue, 23 Jun 2015 05:08:47 +0000 (15:08 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 23 Jun 2015 05:08:47 +0000 (15:08 +1000)
commit170383b993bb303858241134ee07ffeffb8b7263
treefe30ba9d31d604ee0e0874909c7fa80f327b57e6
parent87f617cf8950ae34465c12760451bc9a9d82d1cf
repair: scan sparse finobt records correctly

The finobt scan performs similar checks as to the inobt scan, including
internal record consistency checks, consistency with inobt records,
inode block state, etc. Various parts of this mechanism also assume
fully allocated inode records and thus lead to false errors with sparse
records.

Update the finobt scan to detect and handle sparse inode records
correctly. As for the inobt, do not assume that blocks associated with
sparse regions are allocated for inodes and do not account sparse inodes
against the freecount. Additionally, verify that sparse state is
consistent with the in-core record and set up any new in-core records
that might have been missing from the inobt correctly.

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