diff options
author | Eric Sandeen <sandeen@sandeen.net> | 2017-04-04 15:37:32 -0500 |
---|---|---|
committer | Eric Sandeen <sandeen@redhat.com> | 2017-04-04 15:37:32 -0500 |
commit | f4241a08c6843845db5b1ab710b1eca6a27ece5c (patch) | |
tree | 04e16b1b0337c44276ebcba9ccc86c899fb068ac | |
parent | 25babb5524cf4dd4624045129b127b95add08255 (diff) | |
download | xfsprogs-dev-f4241a08c6843845db5b1ab710b1eca6a27ece5c.tar.gz |
xfs: glean crc status from mp not flags in xfs_btree_init_block_int
Source kernel commit: f88ae46b09e93ef07ac9efaf85df62adb5ba58e6
xfs_btree_init_block_int() can determine whether crcs are
in effect without the passed-in XFS_BTREE_CRC_BLOCKS flag;
the mp argument allows us to determine this from the
superblock. Remove the flag from callers, and use
xfs_sb_version_hascrc(&mp->m_sb) internally instead.
This removes one difference between the if & else cases
in the callers.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r-- | libxfs/xfs_bmap.c | 4 | ||||
-rw-r--r-- | libxfs/xfs_bmap_btree.c | 2 | ||||
-rw-r--r-- | libxfs/xfs_btree.c | 6 | ||||
-rw-r--r-- | mkfs/xfs_mkfs.c | 12 | ||||
-rw-r--r-- | repair/phase5.c | 31 |
5 files changed, 25 insertions, 30 deletions
diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 0094548815..270fea92e1 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -734,7 +734,7 @@ xfs_bmap_extents_to_btree( if (xfs_sb_version_hascrc(&mp->m_sb)) xfs_btree_init_block_int(mp, block, XFS_BUF_DADDR_NULL, XFS_BMAP_CRC_MAGIC, 1, 1, ip->i_ino, - XFS_BTREE_LONG_PTRS | XFS_BTREE_CRC_BLOCKS); + XFS_BTREE_LONG_PTRS); else xfs_btree_init_block_int(mp, block, XFS_BUF_DADDR_NULL, XFS_BMAP_MAGIC, 1, 1, ip->i_ino, @@ -811,7 +811,7 @@ try_another_ag: if (xfs_sb_version_hascrc(&mp->m_sb)) xfs_btree_init_block_int(mp, ablock, abp->b_bn, XFS_BMAP_CRC_MAGIC, 0, 0, ip->i_ino, - XFS_BTREE_LONG_PTRS | XFS_BTREE_CRC_BLOCKS); + XFS_BTREE_LONG_PTRS); else xfs_btree_init_block_int(mp, ablock, abp->b_bn, XFS_BMAP_MAGIC, 0, 0, ip->i_ino, diff --git a/libxfs/xfs_bmap_btree.c b/libxfs/xfs_bmap_btree.c index 72fc1bd68f..b01d61dd42 100644 --- a/libxfs/xfs_bmap_btree.c +++ b/libxfs/xfs_bmap_btree.c @@ -71,7 +71,7 @@ xfs_bmdr_to_bmbt( if (xfs_sb_version_hascrc(&mp->m_sb)) xfs_btree_init_block_int(mp, rblock, XFS_BUF_DADDR_NULL, XFS_BMAP_CRC_MAGIC, 0, 0, ip->i_ino, - XFS_BTREE_LONG_PTRS | XFS_BTREE_CRC_BLOCKS); + XFS_BTREE_LONG_PTRS); else xfs_btree_init_block_int(mp, rblock, XFS_BUF_DADDR_NULL, XFS_BMAP_MAGIC, 0, 0, ip->i_ino, diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c index 258b4dd2d6..08d9dc933b 100644 --- a/libxfs/xfs_btree.c +++ b/libxfs/xfs_btree.c @@ -1086,6 +1086,8 @@ xfs_btree_init_block_int( __u64 owner, unsigned int flags) { + int crc = xfs_sb_version_hascrc(&mp->m_sb); + buf->bb_magic = cpu_to_be32(magic); buf->bb_level = cpu_to_be16(level); buf->bb_numrecs = cpu_to_be16(numrecs); @@ -1093,7 +1095,7 @@ xfs_btree_init_block_int( if (flags & XFS_BTREE_LONG_PTRS) { buf->bb_u.l.bb_leftsib = cpu_to_be64(NULLFSBLOCK); buf->bb_u.l.bb_rightsib = cpu_to_be64(NULLFSBLOCK); - if (flags & XFS_BTREE_CRC_BLOCKS) { + if (crc) { buf->bb_u.l.bb_blkno = cpu_to_be64(blkno); buf->bb_u.l.bb_owner = cpu_to_be64(owner); uuid_copy(&buf->bb_u.l.bb_uuid, &mp->m_sb.sb_meta_uuid); @@ -1106,7 +1108,7 @@ xfs_btree_init_block_int( buf->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); buf->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); - if (flags & XFS_BTREE_CRC_BLOCKS) { + if (crc) { buf->bb_u.s.bb_blkno = cpu_to_be64(blkno); buf->bb_u.s.bb_owner = cpu_to_be32(__owner); uuid_copy(&buf->bb_u.s.bb_uuid, &mp->m_sb.sb_meta_uuid); diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index affa4052d6..a7dd4479ba 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -3040,7 +3040,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), memset(block, 0, blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, buf, XFS_ABTB_CRC_MAGIC, 0, 1, - agno, XFS_BTREE_CRC_BLOCKS); + agno, 0); else libxfs_btree_init_block(mp, buf, XFS_ABTB_MAGIC, 0, 1, agno, 0); @@ -3095,7 +3095,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), memset(block, 0, blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, buf, XFS_ABTC_CRC_MAGIC, 0, 1, - agno, XFS_BTREE_CRC_BLOCKS); + agno, 0); else libxfs_btree_init_block(mp, buf, XFS_ABTC_MAGIC, 0, 1, agno, 0); @@ -3142,7 +3142,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), block = XFS_BUF_TO_BLOCK(buf); memset(block, 0, blocksize); libxfs_btree_init_block(mp, buf, XFS_REFC_CRC_MAGIC, 0, - 0, agno, XFS_BTREE_CRC_BLOCKS); + 0, agno, 0); libxfs_writebuf(buf, LIBXFS_EXIT_ON_FAILURE); } @@ -3158,7 +3158,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), memset(block, 0, blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, buf, XFS_IBT_CRC_MAGIC, 0, 0, - agno, XFS_BTREE_CRC_BLOCKS); + agno, 0); else libxfs_btree_init_block(mp, buf, XFS_IBT_MAGIC, 0, 0, agno, 0); @@ -3176,7 +3176,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), memset(block, 0, blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, buf, XFS_FIBT_CRC_MAGIC, 0, 0, - agno, XFS_BTREE_CRC_BLOCKS); + agno, 0); else libxfs_btree_init_block(mp, buf, XFS_FIBT_MAGIC, 0, 0, agno, 0); @@ -3195,7 +3195,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), memset(block, 0, blocksize); libxfs_btree_init_block(mp, buf, XFS_RMAP_CRC_MAGIC, 0, 0, - agno, XFS_BTREE_CRC_BLOCKS); + agno, 0); /* * mark the AG header regions as static metadata diff --git a/repair/phase5.c b/repair/phase5.c index ebe1f7d673..4c9e619d48 100644 --- a/repair/phase5.c +++ b/repair/phase5.c @@ -696,7 +696,7 @@ prop_freespace_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, memset(bt_hdr, 0, mp->m_sb.sb_blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, crc_magic, level, - 0, agno, XFS_BTREE_CRC_BLOCKS); + 0, agno, 0); else libxfs_btree_init_block(mp, lptr->buf_p, magic, level, 0, agno, 0); @@ -782,7 +782,7 @@ build_freespace_tree(xfs_mount_t *mp, xfs_agnumber_t agno, memset(bt_hdr, 0, mp->m_sb.sb_blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, crc_magic, i, - 0, agno, XFS_BTREE_CRC_BLOCKS); + 0, agno, 0); else libxfs_btree_init_block(mp, lptr->buf_p, magic, i, 0, agno, 0); @@ -814,7 +814,7 @@ build_freespace_tree(xfs_mount_t *mp, xfs_agnumber_t agno, memset(bt_hdr, 0, mp->m_sb.sb_blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, crc_magic, 0, - 0, agno, XFS_BTREE_CRC_BLOCKS); + 0, agno, 0); else libxfs_btree_init_block(mp, lptr->buf_p, magic, 0, 0, agno, 0); @@ -1077,7 +1077,7 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_CRC_MAGIC, level, 0, agno, - XFS_BTREE_CRC_BLOCKS); + 0); else libxfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_MAGIC, level, 0, agno, 0); @@ -1202,7 +1202,7 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, magic, i, 0, agno, - XFS_BTREE_CRC_BLOCKS); + 0); else libxfs_btree_init_block(mp, lptr->buf_p, magic, i, 0, agno, 0); @@ -1235,8 +1235,7 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, memset(bt_hdr, 0, mp->m_sb.sb_blocksize); if (xfs_sb_version_hascrc(&mp->m_sb)) libxfs_btree_init_block(mp, lptr->buf_p, magic, - 0, 0, agno, - XFS_BTREE_CRC_BLOCKS); + 0, 0, agno, 0); else libxfs_btree_init_block(mp, lptr->buf_p, magic, 0, 0, agno, 0); @@ -1493,8 +1492,7 @@ prop_rmap_cursor( bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_RMAP_CRC_MAGIC, - level, 0, agno, - XFS_BTREE_CRC_BLOCKS); + level, 0, agno, 0); bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); @@ -1606,8 +1604,7 @@ build_rmap_tree( bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_RMAP_CRC_MAGIC, - i, 0, agno, - XFS_BTREE_CRC_BLOCKS); + i, 0, agno, 0); } /* @@ -1634,8 +1631,7 @@ _("Insufficient memory to construct reverse-map cursor.")); bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_RMAP_CRC_MAGIC, - 0, 0, agno, - XFS_BTREE_CRC_BLOCKS); + 0, 0, agno, 0); bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); bt_hdr->bb_numrecs = cpu_to_be16(numrecs); @@ -1844,8 +1840,7 @@ prop_refc_cursor( bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_REFC_CRC_MAGIC, - level, 0, agno, - XFS_BTREE_CRC_BLOCKS); + level, 0, agno, 0); bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); @@ -1912,8 +1907,7 @@ build_refcount_tree( bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_REFC_CRC_MAGIC, - i, 0, agno, - XFS_BTREE_CRC_BLOCKS); + i, 0, agno, 0); } /* @@ -1940,8 +1934,7 @@ _("Insufficient memory to construct refcount cursor.")); bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); libxfs_btree_init_block(mp, lptr->buf_p, XFS_REFC_CRC_MAGIC, - 0, 0, agno, - XFS_BTREE_CRC_BLOCKS); + 0, 0, agno, 0); bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); bt_hdr->bb_numrecs = cpu_to_be16(numrecs); |