[PATCH] xfs: fix superblock inprogress check
Brian Foster
bfoster at redhat.com
Wed Aug 24 13:07:38 CDT 2016
On Mon, Aug 22, 2016 at 03:39:27PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> From inspection, the superblock sb_inprogress check is done in the
> verifier and triggered only for the primary superblock via a
> "bp->b_bn == XFS_SB_DADDR" check.
>
> Unfortunately, the primary superblock is an uncached buffer, and
> hence it is configured by xfs_buf_read_uncached() with:
>
> bp->b_bn = XFS_BUF_DADDR_NULL; /* always null for uncached buffers */
>
> And so this check never triggers. Fix it.
>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> ---
Reviewed-by: Brian Foster <bfoster at redhat.com>
> fs/xfs/libxfs/xfs_sb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c
> index 0e3d4f5..4aecc5f 100644
> --- a/fs/xfs/libxfs/xfs_sb.c
> +++ b/fs/xfs/libxfs/xfs_sb.c
> @@ -583,7 +583,8 @@ xfs_sb_verify(
> * Only check the in progress field for the primary superblock as
> * mkfs.xfs doesn't clear it from secondary superblocks.
> */
> - return xfs_mount_validate_sb(mp, &sb, bp->b_bn == XFS_SB_DADDR,
> + return xfs_mount_validate_sb(mp, &sb,
> + bp->b_maps[0].bm_bn == XFS_SB_DADDR,
> check_version);
> }
>
> --
> 2.8.0.rc3
>
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
More information about the xfs
mailing list