Lines Matching refs:mp

48 	struct xfs_mount	*mp)  in xfs_ialloc_cluster_alignment()  argument
50 if (xfs_sb_version_hasalign(&mp->m_sb) && in xfs_ialloc_cluster_alignment()
51 mp->m_sb.sb_inoalignmt >= in xfs_ialloc_cluster_alignment()
52 XFS_B_TO_FSBT(mp, mp->m_inode_cluster_size)) in xfs_ialloc_cluster_alignment()
53 return mp->m_sb.sb_inoalignmt; in xfs_ialloc_cluster_alignment()
131 struct xfs_mount *mp, in xfs_inobt_insert() argument
145 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); in xfs_inobt_insert()
220 struct xfs_mount *mp, in xfs_ialloc_inode_init() argument
241 blks_per_cluster = xfs_icluster_size_fsb(mp); in xfs_ialloc_inode_init()
242 inodes_per_cluster = blks_per_cluster << mp->m_sb.sb_inopblog; in xfs_ialloc_inode_init()
264 if (xfs_sb_version_hascrc(&mp->m_sb)) { in xfs_ialloc_inode_init()
266 ino = XFS_AGINO_TO_INO(mp, agno, in xfs_ialloc_inode_init()
267 XFS_OFFBNO_TO_AGINO(mp, agbno, 0)); in xfs_ialloc_inode_init()
278 xfs_icreate_log(tp, agno, agbno, mp->m_ialloc_inos, in xfs_ialloc_inode_init()
279 mp->m_sb.sb_inodesize, length, gen); in xfs_ialloc_inode_init()
287 d = XFS_AGB_TO_DADDR(mp, agno, agbno + (j * blks_per_cluster)); in xfs_ialloc_inode_init()
288 fbuf = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, in xfs_ialloc_inode_init()
289 mp->m_bsize * blks_per_cluster, in xfs_ialloc_inode_init()
298 int ioffset = i << mp->m_sb.sb_inodelog; in xfs_ialloc_inode_init()
301 free = xfs_make_iptr(mp, fbuf, i); in xfs_ialloc_inode_init()
310 uuid_copy(&free->di_uuid, &mp->m_sb.sb_uuid); in xfs_ialloc_inode_init()
311 xfs_dinode_calc_crc(mp, free); in xfs_ialloc_inode_init()
371 args.mp = tp->t_mountp; in xfs_ialloc_ag_alloc()
377 newlen = args.mp->m_ialloc_inos; in xfs_ialloc_ag_alloc()
378 if (args.mp->m_maxicount && in xfs_ialloc_ag_alloc()
379 percpu_counter_read_positive(&args.mp->m_icount) + newlen > in xfs_ialloc_ag_alloc()
380 args.mp->m_maxicount) in xfs_ialloc_ag_alloc()
382 args.minlen = args.maxlen = args.mp->m_ialloc_blks; in xfs_ialloc_ag_alloc()
391 args.agbno = XFS_AGINO_TO_AGBNO(args.mp, newino) + in xfs_ialloc_ag_alloc()
392 args.mp->m_ialloc_blks; in xfs_ialloc_ag_alloc()
395 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
413 args.minalignslop = xfs_ialloc_cluster_alignment(args.mp) - 1; in xfs_ialloc_ag_alloc()
416 args.minleft = args.mp->m_in_maxlevels - 1; in xfs_ialloc_ag_alloc()
444 if (args.mp->m_sinoalign) { in xfs_ialloc_ag_alloc()
445 ASSERT(!(args.mp->m_flags & XFS_MOUNT_NOALIGN)); in xfs_ialloc_ag_alloc()
446 args.alignment = args.mp->m_dalign; in xfs_ialloc_ag_alloc()
449 args.alignment = xfs_ialloc_cluster_alignment(args.mp); in xfs_ialloc_ag_alloc()
456 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
465 args.minleft = args.mp->m_in_maxlevels - 1; in xfs_ialloc_ag_alloc()
477 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
478 args.alignment = xfs_ialloc_cluster_alignment(args.mp); in xfs_ialloc_ag_alloc()
498 error = xfs_ialloc_inode_init(args.mp, tp, NULL, agno, args.agbno, in xfs_ialloc_ag_alloc()
506 newino = XFS_OFFBNO_TO_AGINO(args.mp, args.agbno, 0); in xfs_ialloc_ag_alloc()
509 pag = xfs_perag_get(args.mp, agno); in xfs_ialloc_ag_alloc()
517 error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, in xfs_ialloc_ag_alloc()
522 if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { in xfs_ialloc_ag_alloc()
523 error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, in xfs_ialloc_ag_alloc()
544 xfs_mount_t *mp) in xfs_ialloc_next_ag() argument
548 spin_lock(&mp->m_agirotor_lock); in xfs_ialloc_next_ag()
549 agno = mp->m_agirotor; in xfs_ialloc_next_ag()
550 if (++mp->m_agirotor >= mp->m_maxagi) in xfs_ialloc_next_ag()
551 mp->m_agirotor = 0; in xfs_ialloc_next_ag()
552 spin_unlock(&mp->m_agirotor_lock); in xfs_ialloc_next_ag()
573 xfs_mount_t *mp; /* mount point structure */ in xfs_ialloc_ag_select() local
584 mp = tp->t_mountp; in xfs_ialloc_ag_select()
585 agcount = mp->m_maxagi; in xfs_ialloc_ag_select()
587 pagno = xfs_ialloc_next_ag(mp); in xfs_ialloc_ag_select()
589 pagno = XFS_INO_TO_AGNO(mp, parent); in xfs_ialloc_ag_select()
606 pag = xfs_perag_get(mp, agno); in xfs_ialloc_ag_select()
608 xfs_ialloc_next_ag(mp); in xfs_ialloc_ag_select()
613 error = xfs_ialloc_pagi_init(mp, tp, agno); in xfs_ialloc_ag_select()
627 error = xfs_alloc_pagf_init(mp, tp, agno, flags); in xfs_ialloc_ag_select()
648 ineed = mp->m_ialloc_blks; in xfs_ialloc_ag_select()
650 ineed += xfs_ialloc_cluster_alignment(mp); in xfs_ialloc_ag_select()
666 if (XFS_FORCED_SHUTDOWN(mp)) in xfs_ialloc_ag_select()
744 struct xfs_mount *mp = tp->t_mountp; in xfs_dialloc_ag_inobt() local
747 xfs_agnumber_t pagno = XFS_INO_TO_AGNO(mp, parent); in xfs_dialloc_ag_inobt()
748 xfs_agino_t pagino = XFS_INO_TO_AGINO(mp, parent); in xfs_dialloc_ag_inobt()
757 pag = xfs_perag_get(mp, agno); in xfs_dialloc_ag_inobt()
764 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); in xfs_dialloc_ag_inobt()
787 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_dialloc_ag_inobt()
792 XFS_WANT_CORRUPTED_GOTO(mp, j == 1, error0); in xfs_dialloc_ag_inobt()
948 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_dialloc_ag_inobt()
954 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_dialloc_ag_inobt()
960 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_dialloc_ag_inobt()
967 ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % in xfs_dialloc_ag_inobt()
969 ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset); in xfs_dialloc_ag_inobt()
1169 struct xfs_mount *mp = tp->t_mountp; in xfs_dialloc_ag() local
1172 xfs_agnumber_t pagno = XFS_INO_TO_AGNO(mp, parent); in xfs_dialloc_ag()
1173 xfs_agino_t pagino = XFS_INO_TO_AGINO(mp, parent); in xfs_dialloc_ag()
1183 if (!xfs_sb_version_hasfinobt(&mp->m_sb)) in xfs_dialloc_ag()
1186 pag = xfs_perag_get(mp, agno); in xfs_dialloc_ag()
1195 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_FINO); in xfs_dialloc_ag()
1216 ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % in xfs_dialloc_ag()
1218 ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset); in xfs_dialloc_ag()
1238 icur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); in xfs_dialloc_ag()
1309 struct xfs_mount *mp = tp->t_mountp; in xfs_dialloc() local
1346 if (mp->m_maxicount && in xfs_dialloc()
1347 percpu_counter_read_positive(&mp->m_icount) + mp->m_ialloc_inos in xfs_dialloc()
1348 > mp->m_maxicount) { in xfs_dialloc()
1360 pag = xfs_perag_get(mp, agno); in xfs_dialloc()
1362 xfs_ialloc_next_ag(mp); in xfs_dialloc()
1367 error = xfs_ialloc_pagi_init(mp, tp, agno); in xfs_dialloc()
1382 error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); in xfs_dialloc()
1426 if (++agno == mp->m_sb.sb_agcount) in xfs_dialloc()
1444 struct xfs_mount *mp, in xfs_difree_inobt() argument
1464 ASSERT(XFS_AGINO_TO_AGBNO(mp, agino) < be32_to_cpu(agi->agi_length)); in xfs_difree_inobt()
1469 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); in xfs_difree_inobt()
1479 xfs_warn(mp, "%s: xfs_inobt_lookup() returned error %d.", in xfs_difree_inobt()
1483 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_difree_inobt()
1486 xfs_warn(mp, "%s: xfs_inobt_get_rec() returned error %d.", in xfs_difree_inobt()
1490 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error0); in xfs_difree_inobt()
1506 if (!(mp->m_flags & XFS_MOUNT_IKEEP) && in xfs_difree_inobt()
1507 (rec.ir_freecount == mp->m_ialloc_inos)) { in xfs_difree_inobt()
1510 *first_ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino); in xfs_difree_inobt()
1517 ilen = mp->m_ialloc_inos; in xfs_difree_inobt()
1521 pag = xfs_perag_get(mp, agno); in xfs_difree_inobt()
1528 xfs_warn(mp, "%s: xfs_btree_delete returned error %d.", in xfs_difree_inobt()
1533 xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, in xfs_difree_inobt()
1534 XFS_AGINO_TO_AGBNO(mp, rec.ir_startino)), in xfs_difree_inobt()
1535 mp->m_ialloc_blks, flist, mp); in xfs_difree_inobt()
1541 xfs_warn(mp, "%s: xfs_inobt_update returned error %d.", in xfs_difree_inobt()
1551 pag = xfs_perag_get(mp, agno); in xfs_difree_inobt()
1575 struct xfs_mount *mp, in xfs_difree_finobt() argument
1589 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_FINO); in xfs_difree_finobt()
1600 XFS_WANT_CORRUPTED_GOTO(mp, ibtrec->ir_freecount == 1, error); in xfs_difree_finobt()
1621 XFS_WANT_CORRUPTED_GOTO(mp, i == 1, error); in xfs_difree_finobt()
1626 XFS_WANT_CORRUPTED_GOTO(mp, (rec.ir_free == ibtrec->ir_free) && in xfs_difree_finobt()
1638 if (rec.ir_freecount == mp->m_ialloc_inos && in xfs_difree_finobt()
1639 !(mp->m_flags & XFS_MOUNT_IKEEP)) { in xfs_difree_finobt()
1683 struct xfs_mount *mp; /* mount structure for filesystem */ in xfs_difree() local
1686 mp = tp->t_mountp; in xfs_difree()
1691 agno = XFS_INO_TO_AGNO(mp, inode); in xfs_difree()
1692 if (agno >= mp->m_sb.sb_agcount) { in xfs_difree()
1693 xfs_warn(mp, "%s: agno >= mp->m_sb.sb_agcount (%d >= %d).", in xfs_difree()
1694 __func__, agno, mp->m_sb.sb_agcount); in xfs_difree()
1698 agino = XFS_INO_TO_AGINO(mp, inode); in xfs_difree()
1699 if (inode != XFS_AGINO_TO_INO(mp, agno, agino)) { in xfs_difree()
1700 xfs_warn(mp, "%s: inode != XFS_AGINO_TO_INO() (%llu != %llu).", in xfs_difree()
1702 (unsigned long long)XFS_AGINO_TO_INO(mp, agno, agino)); in xfs_difree()
1706 agbno = XFS_AGINO_TO_AGBNO(mp, agino); in xfs_difree()
1707 if (agbno >= mp->m_sb.sb_agblocks) { in xfs_difree()
1708 xfs_warn(mp, "%s: agbno >= mp->m_sb.sb_agblocks (%d >= %d).", in xfs_difree()
1709 __func__, agbno, mp->m_sb.sb_agblocks); in xfs_difree()
1716 error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); in xfs_difree()
1718 xfs_warn(mp, "%s: xfs_ialloc_read_agi() returned error %d.", in xfs_difree()
1726 error = xfs_difree_inobt(mp, tp, agbp, agino, flist, deleted, first_ino, in xfs_difree()
1734 if (xfs_sb_version_hasfinobt(&mp->m_sb)) { in xfs_difree()
1735 error = xfs_difree_finobt(mp, tp, agbp, agino, &rec); in xfs_difree()
1748 struct xfs_mount *mp, in xfs_imap_lookup() argument
1763 error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); in xfs_imap_lookup()
1765 xfs_alert(mp, in xfs_imap_lookup()
1777 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); in xfs_imap_lookup()
1793 rec.ir_startino + mp->m_ialloc_inos <= agino) in xfs_imap_lookup()
1801 *chunk_agbno = XFS_AGINO_TO_AGBNO(mp, rec.ir_startino); in xfs_imap_lookup()
1811 xfs_mount_t *mp, /* file system mount structure */ in xfs_imap() argument
1832 agno = XFS_INO_TO_AGNO(mp, ino); in xfs_imap()
1833 agino = XFS_INO_TO_AGINO(mp, ino); in xfs_imap()
1834 agbno = XFS_AGINO_TO_AGBNO(mp, agino); in xfs_imap()
1835 if (agno >= mp->m_sb.sb_agcount || agbno >= mp->m_sb.sb_agblocks || in xfs_imap()
1836 ino != XFS_AGINO_TO_INO(mp, agno, agino)) { in xfs_imap()
1844 if (agno >= mp->m_sb.sb_agcount) { in xfs_imap()
1845 xfs_alert(mp, in xfs_imap()
1847 __func__, agno, mp->m_sb.sb_agcount); in xfs_imap()
1849 if (agbno >= mp->m_sb.sb_agblocks) { in xfs_imap()
1850 xfs_alert(mp, in xfs_imap()
1853 (unsigned long)mp->m_sb.sb_agblocks); in xfs_imap()
1855 if (ino != XFS_AGINO_TO_INO(mp, agno, agino)) { in xfs_imap()
1856 xfs_alert(mp, in xfs_imap()
1859 XFS_AGINO_TO_INO(mp, agno, agino)); in xfs_imap()
1866 blks_per_cluster = xfs_icluster_size_fsb(mp); in xfs_imap()
1876 error = xfs_imap_lookup(mp, tp, agno, agino, agbno, in xfs_imap()
1888 offset = XFS_INO_TO_OFFSET(mp, ino); in xfs_imap()
1889 ASSERT(offset < mp->m_sb.sb_inopblock); in xfs_imap()
1891 imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, agbno); in xfs_imap()
1892 imap->im_len = XFS_FSB_TO_BB(mp, 1); in xfs_imap()
1893 imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); in xfs_imap()
1902 if (mp->m_inoalign_mask) { in xfs_imap()
1903 offset_agbno = agbno & mp->m_inoalign_mask; in xfs_imap()
1906 error = xfs_imap_lookup(mp, tp, agno, agino, agbno, in xfs_imap()
1916 offset = ((agbno - cluster_agbno) * mp->m_sb.sb_inopblock) + in xfs_imap()
1917 XFS_INO_TO_OFFSET(mp, ino); in xfs_imap()
1919 imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, cluster_agbno); in xfs_imap()
1920 imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); in xfs_imap()
1921 imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); in xfs_imap()
1930 XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { in xfs_imap()
1931 xfs_alert(mp, in xfs_imap()
1935 XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); in xfs_imap()
1946 xfs_mount_t *mp) /* file system mount structure */ in xfs_ialloc_compute_maxlevels() argument
1954 maxleafents = (1LL << XFS_INO_AGINO_BITS(mp)) >> in xfs_ialloc_compute_maxlevels()
1956 minleafrecs = mp->m_alloc_mnr[0]; in xfs_ialloc_compute_maxlevels()
1957 minnoderecs = mp->m_alloc_mnr[1]; in xfs_ialloc_compute_maxlevels()
1961 mp->m_in_maxlevels = level; in xfs_ialloc_compute_maxlevels()
2051 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_agi_verify() local
2054 if (xfs_sb_version_hascrc(&mp->m_sb) && in xfs_agi_verify()
2055 !uuid_equal(&agi->agi_uuid, &mp->m_sb.sb_uuid)) in xfs_agi_verify()
2084 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_agi_read_verify() local
2086 if (xfs_sb_version_hascrc(&mp->m_sb) && in xfs_agi_read_verify()
2089 else if (XFS_TEST_ERROR(!xfs_agi_verify(bp), mp, in xfs_agi_read_verify()
2102 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_agi_write_verify() local
2111 if (!xfs_sb_version_hascrc(&mp->m_sb)) in xfs_agi_write_verify()
2129 struct xfs_mount *mp, /* file system mount structure */ in xfs_read_agi() argument
2136 trace_xfs_read_agi(mp, agno); in xfs_read_agi()
2139 error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, in xfs_read_agi()
2140 XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), in xfs_read_agi()
2141 XFS_FSS_TO_BB(mp, 1), 0, bpp, &xfs_agi_buf_ops); in xfs_read_agi()
2151 struct xfs_mount *mp, /* file system mount structure */ in xfs_ialloc_read_agi() argument
2160 trace_xfs_ialloc_read_agi(mp, agno); in xfs_ialloc_read_agi()
2162 error = xfs_read_agi(mp, tp, agno, bpp); in xfs_ialloc_read_agi()
2167 pag = xfs_perag_get(mp, agno); in xfs_ialloc_read_agi()
2179 XFS_FORCED_SHUTDOWN(mp)); in xfs_ialloc_read_agi()
2189 xfs_mount_t *mp, /* file system mount structure */ in xfs_ialloc_pagi_init() argument
2196 error = xfs_ialloc_read_agi(mp, tp, agno, &bp); in xfs_ialloc_pagi_init()