xfs: add support for large btree blocks
[deliverable/linux.git] / fs / xfs / xfs_fsops.c
index 2866b8c78b7adf9f2cfa9d5feed4386d46a4c804..6fe286a8e29b35ee2a95879234768532147b0618 100644 (file)
@@ -316,7 +316,13 @@ xfs_growfs_data_private(
                        goto error0;
                }
 
-               xfs_btree_init_block(mp, bp, XFS_ABTB_MAGIC, 0, 1, 0);
+               if (xfs_sb_version_hascrc(&mp->m_sb))
+                       xfs_btree_init_block(mp, bp, XFS_ABTB_CRC_MAGIC, 0, 1,
+                                               agno, XFS_BTREE_CRC_BLOCKS);
+               else
+                       xfs_btree_init_block(mp, bp, XFS_ABTB_MAGIC, 0, 1,
+                                               agno, 0);
+
                arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
                arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
                arec->ar_blockcount = cpu_to_be32(
@@ -339,7 +345,13 @@ xfs_growfs_data_private(
                        goto error0;
                }
 
-               xfs_btree_init_block(mp, bp, XFS_ABTC_MAGIC, 0, 1, 0);
+               if (xfs_sb_version_hascrc(&mp->m_sb))
+                       xfs_btree_init_block(mp, bp, XFS_ABTC_CRC_MAGIC, 0, 1,
+                                               agno, XFS_BTREE_CRC_BLOCKS);
+               else
+                       xfs_btree_init_block(mp, bp, XFS_ABTC_MAGIC, 0, 1,
+                                               agno, 0);
+
                arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
                arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
                arec->ar_blockcount = cpu_to_be32(
@@ -363,7 +375,12 @@ xfs_growfs_data_private(
                        goto error0;
                }
 
-               xfs_btree_init_block(mp, bp, XFS_IBT_MAGIC, 0, 0, 0);
+               if (xfs_sb_version_hascrc(&mp->m_sb))
+                       xfs_btree_init_block(mp, bp, XFS_IBT_CRC_MAGIC, 0, 0,
+                                               agno, XFS_BTREE_CRC_BLOCKS);
+               else
+                       xfs_btree_init_block(mp, bp, XFS_IBT_MAGIC, 0, 0,
+                                               agno, 0);
 
                error = xfs_bwrite(bp);
                xfs_buf_relse(bp);
This page took 0.024815 seconds and 5 git commands to generate.