Lines Matching refs:args
601 xfs_alloc_arg_t args; /* allocation argument structure */ in xfs_ialloc_ag_alloc() local
613 memset(&args, 0, sizeof(args)); in xfs_ialloc_ag_alloc()
614 args.tp = tp; in xfs_ialloc_ag_alloc()
615 args.mp = tp->t_mountp; in xfs_ialloc_ag_alloc()
616 args.fsbno = NULLFSBLOCK; in xfs_ialloc_ag_alloc()
621 args.mp->m_ialloc_min_blks < args.mp->m_ialloc_blks) in xfs_ialloc_ag_alloc()
629 newlen = args.mp->m_ialloc_inos; in xfs_ialloc_ag_alloc()
630 if (args.mp->m_maxicount && in xfs_ialloc_ag_alloc()
631 percpu_counter_read_positive(&args.mp->m_icount) + newlen > in xfs_ialloc_ag_alloc()
632 args.mp->m_maxicount) in xfs_ialloc_ag_alloc()
634 args.minlen = args.maxlen = args.mp->m_ialloc_blks; in xfs_ialloc_ag_alloc()
643 args.agbno = XFS_AGINO_TO_AGBNO(args.mp, newino) + in xfs_ialloc_ag_alloc()
644 args.mp->m_ialloc_blks; in xfs_ialloc_ag_alloc()
648 (args.agbno < be32_to_cpu(agi->agi_length)))) { in xfs_ialloc_ag_alloc()
649 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
650 args.type = XFS_ALLOCTYPE_THIS_BNO; in xfs_ialloc_ag_alloc()
651 args.prod = 1; in xfs_ialloc_ag_alloc()
666 args.alignment = 1; in xfs_ialloc_ag_alloc()
667 args.minalignslop = xfs_ialloc_cluster_alignment(args.mp) - 1; in xfs_ialloc_ag_alloc()
670 args.minleft = args.mp->m_in_maxlevels - 1; in xfs_ialloc_ag_alloc()
671 if ((error = xfs_alloc_vextent(&args))) in xfs_ialloc_ag_alloc()
684 args.minalignslop = 0; in xfs_ialloc_ag_alloc()
687 if (unlikely(args.fsbno == NULLFSBLOCK)) { in xfs_ialloc_ag_alloc()
697 if (args.mp->m_sinoalign) { in xfs_ialloc_ag_alloc()
698 ASSERT(!(args.mp->m_flags & XFS_MOUNT_NOALIGN)); in xfs_ialloc_ag_alloc()
699 args.alignment = args.mp->m_dalign; in xfs_ialloc_ag_alloc()
702 args.alignment = xfs_ialloc_cluster_alignment(args.mp); in xfs_ialloc_ag_alloc()
708 args.agbno = be32_to_cpu(agi->agi_root); in xfs_ialloc_ag_alloc()
709 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
713 args.type = XFS_ALLOCTYPE_NEAR_BNO; in xfs_ialloc_ag_alloc()
714 args.prod = 1; in xfs_ialloc_ag_alloc()
718 args.minleft = args.mp->m_in_maxlevels - 1; in xfs_ialloc_ag_alloc()
719 if ((error = xfs_alloc_vextent(&args))) in xfs_ialloc_ag_alloc()
727 if (isaligned && args.fsbno == NULLFSBLOCK) { in xfs_ialloc_ag_alloc()
728 args.type = XFS_ALLOCTYPE_NEAR_BNO; in xfs_ialloc_ag_alloc()
729 args.agbno = be32_to_cpu(agi->agi_root); in xfs_ialloc_ag_alloc()
730 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
731 args.alignment = xfs_ialloc_cluster_alignment(args.mp); in xfs_ialloc_ag_alloc()
732 if ((error = xfs_alloc_vextent(&args))) in xfs_ialloc_ag_alloc()
740 if (xfs_sb_version_hassparseinodes(&args.mp->m_sb) && in xfs_ialloc_ag_alloc()
741 args.mp->m_ialloc_min_blks < args.mp->m_ialloc_blks && in xfs_ialloc_ag_alloc()
742 args.fsbno == NULLFSBLOCK) { in xfs_ialloc_ag_alloc()
744 args.type = XFS_ALLOCTYPE_NEAR_BNO; in xfs_ialloc_ag_alloc()
745 args.agbno = be32_to_cpu(agi->agi_root); in xfs_ialloc_ag_alloc()
746 args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); in xfs_ialloc_ag_alloc()
747 args.alignment = args.mp->m_sb.sb_spino_align; in xfs_ialloc_ag_alloc()
748 args.prod = 1; in xfs_ialloc_ag_alloc()
750 args.minlen = args.mp->m_ialloc_min_blks; in xfs_ialloc_ag_alloc()
751 args.maxlen = args.minlen; in xfs_ialloc_ag_alloc()
763 args.min_agbno = args.mp->m_sb.sb_inoalignmt; in xfs_ialloc_ag_alloc()
764 args.max_agbno = round_down(args.mp->m_sb.sb_agblocks, in xfs_ialloc_ag_alloc()
765 args.mp->m_sb.sb_inoalignmt) - in xfs_ialloc_ag_alloc()
766 args.mp->m_ialloc_blks; in xfs_ialloc_ag_alloc()
768 error = xfs_alloc_vextent(&args); in xfs_ialloc_ag_alloc()
772 newlen = args.len << args.mp->m_sb.sb_inopblog; in xfs_ialloc_ag_alloc()
777 if (args.fsbno == NULLFSBLOCK) { in xfs_ialloc_ag_alloc()
781 ASSERT(args.len == args.minlen); in xfs_ialloc_ag_alloc()
792 error = xfs_ialloc_inode_init(args.mp, tp, NULL, newlen, agno, in xfs_ialloc_ag_alloc()
793 args.agbno, args.len, prandom_u32()); in xfs_ialloc_ag_alloc()
800 newino = XFS_OFFBNO_TO_AGINO(args.mp, args.agbno, 0); in xfs_ialloc_ag_alloc()
806 xfs_align_sparse_ino(args.mp, &newino, &allocmask); in xfs_ialloc_ag_alloc()
819 error = xfs_inobt_insert_sprec(args.mp, tp, agbp, XFS_BTNUM_INO, in xfs_ialloc_ag_alloc()
822 xfs_alert(args.mp, in xfs_ialloc_ag_alloc()
824 XFS_AGINO_TO_INO(args.mp, agno, in xfs_ialloc_ag_alloc()
827 xfs_force_shutdown(args.mp, SHUTDOWN_CORRUPT_INCORE); in xfs_ialloc_ag_alloc()
843 if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { in xfs_ialloc_ag_alloc()
844 error = xfs_inobt_insert_sprec(args.mp, tp, agbp, in xfs_ialloc_ag_alloc()
852 error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, in xfs_ialloc_ag_alloc()
857 if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { in xfs_ialloc_ag_alloc()
858 error = xfs_inobt_insert(args.mp, tp, agbp, newino, in xfs_ialloc_ag_alloc()
870 pag = xfs_perag_get(args.mp, agno); in xfs_ialloc_ag_alloc()