]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: scrub should flag dir/attr offsets that aren't mappable with xfs_dablk_t
authorDarrick J. Wong <darrick.wong@oracle.com>
Mon, 6 May 2019 22:00:20 +0000 (18:00 -0400)
committerEric Sandeen <sandeen@redhat.com>
Mon, 6 May 2019 22:00:20 +0000 (18:00 -0400)
Source kernel commit: f8c1d7023e252df853efbb3566c6d47b148609fe

Teach scrub to flag extent maps that exceed the range that can be mapped
with a xfs_dablk_t.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_types.c
libxfs/xfs_types.h

index 852ca21c5d1dab245ad05b1353595d642cd80560..01e073e67d00525b8a86a8fee75004a2711ad6e5 100644 (file)
@@ -204,3 +204,14 @@ xfs_verify_icount(
        xfs_icount_range(mp, &min, &max);
        return icount >= min && icount <= max;
 }
+
+/* Sanity-checking of dir/attr block offsets. */
+bool
+xfs_verify_dablk(
+       struct xfs_mount        *mp,
+       xfs_fileoff_t           dabno)
+{
+       xfs_dablk_t             max_dablk = -1U;
+
+       return dabno <= max_dablk;
+}
index 8f02855a019a41c5d1c481e044af88102792308c..704b4f3087803bbe6961b72a8f1da0cfa9b95b75 100644 (file)
@@ -188,5 +188,6 @@ bool xfs_internal_inum(struct xfs_mount *mp, xfs_ino_t ino);
 bool xfs_verify_dir_ino(struct xfs_mount *mp, xfs_ino_t ino);
 bool xfs_verify_rtbno(struct xfs_mount *mp, xfs_rtblock_t rtbno);
 bool xfs_verify_icount(struct xfs_mount *mp, unsigned long long icount);
+bool xfs_verify_dablk(struct xfs_mount *mp, xfs_fileoff_t off);
 
 #endif /* __XFS_TYPES_H__ */