xfs_ag.c (2d6ca8321c354e1cb6f6b1963c4f7bd053d2e272) | xfs_ag.c (36029dee382a20cf515494376ce9f0d5949944eb) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (c) 2000-2005 Silicon Graphics, Inc. 4 * Copyright (c) 2018 Red Hat, Inc. 5 * All rights reserved. 6 */ 7 8#include "xfs.h" --- 376 unchanged lines hidden (view full) --- 385 386 bp->b_maps[0].bm_bn = blkno; 387 bp->b_ops = ops; 388 389 *bpp = bp; 390 return 0; 391} 392 | 1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (c) 2000-2005 Silicon Graphics, Inc. 4 * Copyright (c) 2018 Red Hat, Inc. 5 * All rights reserved. 6 */ 7 8#include "xfs.h" --- 376 unchanged lines hidden (view full) --- 385 386 bp->b_maps[0].bm_bn = blkno; 387 bp->b_ops = ops; 388 389 *bpp = bp; 390 return 0; 391} 392 |
393static inline bool is_log_ag(struct xfs_mount *mp, struct aghdr_init_data *id) 394{ 395 return mp->m_sb.sb_logstart > 0 && 396 id->agno == XFS_FSB_TO_AGNO(mp, mp->m_sb.sb_logstart); 397} 398 | |
399/* 400 * Generic btree root block init function 401 */ 402static void 403xfs_btroot_init( 404 struct xfs_mount *mp, 405 struct xfs_buf *bp, 406 struct aghdr_init_data *id) --- 9 unchanged lines hidden (view full) --- 416 struct aghdr_init_data *id) 417{ 418 struct xfs_alloc_rec *arec; 419 struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp); 420 421 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1); 422 arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks); 423 | 393/* 394 * Generic btree root block init function 395 */ 396static void 397xfs_btroot_init( 398 struct xfs_mount *mp, 399 struct xfs_buf *bp, 400 struct aghdr_init_data *id) --- 9 unchanged lines hidden (view full) --- 410 struct aghdr_init_data *id) 411{ 412 struct xfs_alloc_rec *arec; 413 struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp); 414 415 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1); 416 arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks); 417 |
424 if (is_log_ag(mp, id)) { | 418 if (xfs_ag_contains_log(mp, id->agno)) { |
425 struct xfs_alloc_rec *nrec; 426 xfs_agblock_t start = XFS_FSB_TO_AGBNO(mp, 427 mp->m_sb.sb_logstart); 428 429 ASSERT(start >= mp->m_ag_prealloc_blocks); 430 if (start != mp->m_ag_prealloc_blocks) { 431 /* 432 * Modify first record to pad stripe align of log --- 110 unchanged lines hidden (view full) --- 543 rrec->rm_startblock = cpu_to_be32(xfs_refc_block(mp)); 544 rrec->rm_blockcount = cpu_to_be32(1); 545 rrec->rm_owner = cpu_to_be64(XFS_RMAP_OWN_REFC); 546 rrec->rm_offset = 0; 547 be16_add_cpu(&block->bb_numrecs, 1); 548 } 549 550 /* account for the log space */ | 419 struct xfs_alloc_rec *nrec; 420 xfs_agblock_t start = XFS_FSB_TO_AGBNO(mp, 421 mp->m_sb.sb_logstart); 422 423 ASSERT(start >= mp->m_ag_prealloc_blocks); 424 if (start != mp->m_ag_prealloc_blocks) { 425 /* 426 * Modify first record to pad stripe align of log --- 110 unchanged lines hidden (view full) --- 537 rrec->rm_startblock = cpu_to_be32(xfs_refc_block(mp)); 538 rrec->rm_blockcount = cpu_to_be32(1); 539 rrec->rm_owner = cpu_to_be64(XFS_RMAP_OWN_REFC); 540 rrec->rm_offset = 0; 541 be16_add_cpu(&block->bb_numrecs, 1); 542 } 543 544 /* account for the log space */ |
551 if (is_log_ag(mp, id)) { | 545 if (xfs_ag_contains_log(mp, id->agno)) { |
552 rrec = XFS_RMAP_REC_ADDR(block, 553 be16_to_cpu(block->bb_numrecs) + 1); 554 rrec->rm_startblock = cpu_to_be32( 555 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart)); 556 rrec->rm_blockcount = cpu_to_be32(mp->m_sb.sb_logblocks); 557 rrec->rm_owner = cpu_to_be64(XFS_RMAP_OWN_LOG); 558 rrec->rm_offset = 0; 559 be16_add_cpu(&block->bb_numrecs, 1); --- 54 unchanged lines hidden (view full) --- 614 uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid); 615 if (xfs_has_reflink(mp)) { 616 agf->agf_refcount_root = cpu_to_be32( 617 xfs_refc_block(mp)); 618 agf->agf_refcount_level = cpu_to_be32(1); 619 agf->agf_refcount_blocks = cpu_to_be32(1); 620 } 621 | 546 rrec = XFS_RMAP_REC_ADDR(block, 547 be16_to_cpu(block->bb_numrecs) + 1); 548 rrec->rm_startblock = cpu_to_be32( 549 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart)); 550 rrec->rm_blockcount = cpu_to_be32(mp->m_sb.sb_logblocks); 551 rrec->rm_owner = cpu_to_be64(XFS_RMAP_OWN_LOG); 552 rrec->rm_offset = 0; 553 be16_add_cpu(&block->bb_numrecs, 1); --- 54 unchanged lines hidden (view full) --- 608 uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid); 609 if (xfs_has_reflink(mp)) { 610 agf->agf_refcount_root = cpu_to_be32( 611 xfs_refc_block(mp)); 612 agf->agf_refcount_level = cpu_to_be32(1); 613 agf->agf_refcount_blocks = cpu_to_be32(1); 614 } 615 |
622 if (is_log_ag(mp, id)) { | 616 if (xfs_ag_contains_log(mp, id->agno)) { |
623 int64_t logblocks = mp->m_sb.sb_logblocks; 624 625 be32_add_cpu(&agf->agf_freeblks, -logblocks); 626 agf->agf_longest = cpu_to_be32(id->agsize - 627 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart) - logblocks); 628 } 629} 630 --- 426 unchanged lines hidden --- | 617 int64_t logblocks = mp->m_sb.sb_logblocks; 618 619 be32_add_cpu(&agf->agf_freeblks, -logblocks); 620 agf->agf_longest = cpu_to_be32(id->agsize - 621 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart) - logblocks); 622 } 623} 624 --- 426 unchanged lines hidden --- |