xfs: ensure that all metadata and data blocks are not cow staging extents
authorDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:12 +0000 (19:00 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:12 +0000 (19:00 -0700)
commit7ac14fa2bd22e99a06ae16382b394f697cfe2b8a
tree3e6c512aed6eee6657110fb2943600036cffb4b1
parent7ad9ea6398feae3ae4ce79fe08457f93b79a9a43
xfs: ensure that all metadata and data blocks are not cow staging extents

Make sure that all filesystem metadata blocks and file data blocks are
not also marked as CoW staging extents.  The extra checking added here
was inspired by an actual VM host filesystem corruption incident due to
bugs in the CoW handling of 4.x kernels.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/scrub/agheader.c
fs/xfs/scrub/alloc.c
fs/xfs/scrub/bmap.c
fs/xfs/scrub/ialloc.c
fs/xfs/scrub/inode.c
fs/xfs/scrub/refcount.c
fs/xfs/scrub/scrub.h