aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_fsops.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_fsops.c')
-rw-r--r--fs/xfs/xfs_fsops.c37
1 files changed, 13 insertions, 24 deletions
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 7b0a997cf62b..a5034af35db7 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -125,7 +125,6 @@ xfs_growfs_data_private(
125 xfs_extlen_t agsize; 125 xfs_extlen_t agsize;
126 xfs_extlen_t tmpsize; 126 xfs_extlen_t tmpsize;
127 xfs_alloc_rec_t *arec; 127 xfs_alloc_rec_t *arec;
128 struct xfs_btree_block *block;
129 xfs_buf_t *bp; 128 xfs_buf_t *bp;
130 int bucket; 129 int bucket;
131 int dpct; 130 int dpct;
@@ -263,17 +262,14 @@ xfs_growfs_data_private(
263 error = ENOMEM; 262 error = ENOMEM;
264 goto error0; 263 goto error0;
265 } 264 }
266 block = XFS_BUF_TO_BLOCK(bp); 265 xfs_buf_zero(bp, 0, BBTOB(bp->b_length));
267 memset(block, 0, mp->m_sb.sb_blocksize); 266 xfs_btree_init_block(mp, bp, XFS_ABTB_MAGIC, 0, 1, 0);
268 block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC); 267
269 block->bb_level = 0; 268 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
270 block->bb_numrecs = cpu_to_be16(1);
271 block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK);
272 block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK);
273 arec = XFS_ALLOC_REC_ADDR(mp, block, 1);
274 arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); 269 arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
275 arec->ar_blockcount = cpu_to_be32( 270 arec->ar_blockcount = cpu_to_be32(
276 agsize - be32_to_cpu(arec->ar_startblock)); 271 agsize - be32_to_cpu(arec->ar_startblock));
272
277 error = xfs_bwrite(bp); 273 error = xfs_bwrite(bp);
278 xfs_buf_relse(bp); 274 xfs_buf_relse(bp);
279 if (error) 275 if (error)
@@ -289,18 +285,15 @@ xfs_growfs_data_private(
289 error = ENOMEM; 285 error = ENOMEM;
290 goto error0; 286 goto error0;
291 } 287 }
292 block = XFS_BUF_TO_BLOCK(bp); 288 xfs_buf_zero(bp, 0, BBTOB(bp->b_length));
293 memset(block, 0, mp->m_sb.sb_blocksize); 289 xfs_btree_init_block(mp, bp, XFS_ABTC_MAGIC, 0, 1, 0);
294 block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC); 290
295 block->bb_level = 0; 291 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
296 block->bb_numrecs = cpu_to_be16(1);
297 block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK);
298 block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK);
299 arec = XFS_ALLOC_REC_ADDR(mp, block, 1);
300 arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); 292 arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
301 arec->ar_blockcount = cpu_to_be32( 293 arec->ar_blockcount = cpu_to_be32(
302 agsize - be32_to_cpu(arec->ar_startblock)); 294 agsize - be32_to_cpu(arec->ar_startblock));
303 nfree += be32_to_cpu(arec->ar_blockcount); 295 nfree += be32_to_cpu(arec->ar_blockcount);
296
304 error = xfs_bwrite(bp); 297 error = xfs_bwrite(bp);
305 xfs_buf_relse(bp); 298 xfs_buf_relse(bp);
306 if (error) 299 if (error)
@@ -316,13 +309,9 @@ xfs_growfs_data_private(
316 error = ENOMEM; 309 error = ENOMEM;
317 goto error0; 310 goto error0;
318 } 311 }
319 block = XFS_BUF_TO_BLOCK(bp); 312 xfs_buf_zero(bp, 0, BBTOB(bp->b_length));
320 memset(block, 0, mp->m_sb.sb_blocksize); 313 xfs_btree_init_block(mp, bp, XFS_IBT_MAGIC, 0, 0, 0);
321 block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); 314
322 block->bb_level = 0;
323 block->bb_numrecs = 0;
324 block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK);
325 block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK);
326 error = xfs_bwrite(bp); 315 error = xfs_bwrite(bp);
327 xfs_buf_relse(bp); 316 xfs_buf_relse(bp);
328 if (error) 317 if (error)