]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - libxfs/rdwr.c
xfs: refactor xfs_inode_verify_forks
[thirdparty/xfsprogs-dev.git] / libxfs / rdwr.c
index 4f09a00058ae8347824c0e5ae91050857bfa9aff..745bd3a7465374814b156de2da72d6cd592ece8b 100644 (file)
@@ -1231,25 +1231,13 @@ bool
 libxfs_inode_verify_forks(
        struct xfs_inode        *ip)
 {
-       struct xfs_ifork        *ifp;
-       xfs_failaddr_t          fa;
-
-       fa = xfs_ifork_verify_data(ip);
-       if (fa) {
-               ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK);
-               xfs_inode_verifier_error(ip, -EFSCORRUPTED, "data fork",
-                               ifp->if_u1.if_data, ifp->if_bytes, fa);
+       if (ip->i_d.di_format == XFS_DINODE_FMT_LOCAL &&
+           xfs_ifork_verify_local_data(ip))
                return false;
-       }
 
-       fa = xfs_ifork_verify_attr(ip);
-       if (fa) {
-               ifp = XFS_IFORK_PTR(ip, XFS_ATTR_FORK);
-               xfs_inode_verifier_error(ip, -EFSCORRUPTED, "attr fork",
-                               ifp ? ifp->if_u1.if_data : NULL,
-                               ifp ? ifp->if_bytes : 0, fa);
+       if (ip->i_d.di_aformat == XFS_DINODE_FMT_LOCAL &&
+           xfs_ifork_verify_local_attr(ip))
                return false;
-       }
        return true;
 }