diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 19:51:06 +0100 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 19:54:47 +0100 |
commit | 9cfb9b47479e237d217dbcfafe034cbf98f45909 (patch) | |
tree | d25f11d0b4b7a622b2f26c06f47ddc6f1a3b6521 /fs/xfs/xfs_icache.c | |
parent | xfs: refactor short form directory structure verifier function (diff) | |
download | linux-9cfb9b47479e237d217dbcfafe034cbf98f45909.tar.xz linux-9cfb9b47479e237d217dbcfafe034cbf98f45909.zip |
xfs: provide a centralized method for verifying inline fork data
Replace the current haphazard dir2 shortform verifier callsites with a
centralized verifier function that can be called either with the default
verifier functions or with a custom set. This helps us strengthen
integrity checking while providing us with flexibility for repair tools.
xfs_repair wants this to be able to supply its own verifier functions
when trying to fix possibly corrupt metadata.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs/xfs_icache.c')
-rw-r--r-- | fs/xfs/xfs_icache.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c index 3861d61fb265..c9c7c02bc2bb 100644 --- a/fs/xfs/xfs_icache.c +++ b/fs/xfs/xfs_icache.c @@ -473,6 +473,11 @@ xfs_iget_cache_miss( if (error) goto out_destroy; + if (!xfs_inode_verify_forks(ip)) { + error = -EFSCORRUPTED; + goto out_destroy; + } + trace_xfs_iget_miss(ip); if ((VFS_I(ip)->i_mode == 0) && !(flags & XFS_IGET_CREATE)) { |