Lines Matching refs:mp

36 STATIC int	xfs_qm_init_quotainos(struct xfs_mount *mp);
37 STATIC int xfs_qm_init_quotainfo(struct xfs_mount *mp);
52 struct xfs_mount *mp,
57 struct xfs_quotainfo *qi = mp->m_quotainfo;
190 struct xfs_mount *mp)
192 xfs_qm_dquot_walk(mp, XFS_DQTYPE_USER, xfs_qm_dqpurge, NULL);
193 xfs_qm_dquot_walk(mp, XFS_DQTYPE_GROUP, xfs_qm_dqpurge, NULL);
194 xfs_qm_dquot_walk(mp, XFS_DQTYPE_PROJ, xfs_qm_dqpurge, NULL);
202 struct xfs_mount *mp)
204 if (mp->m_quotainfo) {
205 xfs_qm_dqpurge_all(mp);
206 xfs_qm_destroy_quotainfo(mp);
215 xfs_mount_t *mp)
221 ASSERT(mp->m_rootip);
222 xfs_qm_dqdetach(mp->m_rootip);
223 if (mp->m_rbmip)
224 xfs_qm_dqdetach(mp->m_rbmip);
225 if (mp->m_rsumip)
226 xfs_qm_dqdetach(mp->m_rsumip);
231 if (mp->m_quotainfo) {
232 if (mp->m_quotainfo->qi_uquotaip) {
233 xfs_irele(mp->m_quotainfo->qi_uquotaip);
234 mp->m_quotainfo->qi_uquotaip = NULL;
236 if (mp->m_quotainfo->qi_gquotaip) {
237 xfs_irele(mp->m_quotainfo->qi_gquotaip);
238 mp->m_quotainfo->qi_gquotaip = NULL;
240 if (mp->m_quotainfo->qi_pquotaip) {
241 xfs_irele(mp->m_quotainfo->qi_pquotaip);
242 mp->m_quotainfo->qi_pquotaip = NULL;
296 struct xfs_mount *mp = ip->i_mount;
298 if (!XFS_IS_QUOTA_ON(mp))
300 if (!XFS_NOT_DQATTACHED(mp, ip))
302 if (xfs_is_quota_inode(&mp->m_sb, ip->i_ino))
319 xfs_mount_t *mp = ip->i_mount;
327 if (XFS_IS_UQUOTA_ON(mp) && !ip->i_udquot) {
335 if (XFS_IS_GQUOTA_ON(mp) && !ip->i_gdquot) {
343 if (XFS_IS_PQUOTA_ON(mp) && !ip->i_pdquot) {
550 struct xfs_mount *mp,
558 error = xfs_qm_dqget_uncached(mp, 0, type, &dqp);
580 struct xfs_mount *mp,
583 struct xfs_quotainfo *qinf = mp->m_quotainfo;
601 error = xfs_qm_dqget_uncached(mp, 0, type, &dqp);
626 struct xfs_mount *mp)
631 ASSERT(XFS_IS_QUOTA_ON(mp));
633 qinf = mp->m_quotainfo = kmem_zalloc(sizeof(struct xfs_quotainfo), 0);
643 error = xfs_qm_init_quotainos(mp);
656 qinf->qi_dqchunklen = XFS_FSB_TO_BB(mp, XFS_DQUOT_CLUSTER_SIZE_FSB);
658 if (xfs_has_bigtime(mp)) {
667 trace_xfs_quota_expiry_range(mp, qinf->qi_expiry_min,
670 mp->m_qflags |= (mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD);
672 xfs_qm_init_timelimits(mp, XFS_DQTYPE_USER);
673 xfs_qm_init_timelimits(mp, XFS_DQTYPE_GROUP);
674 xfs_qm_init_timelimits(mp, XFS_DQTYPE_PROJ);
676 if (XFS_IS_UQUOTA_ON(mp))
677 xfs_qm_set_defquota(mp, XFS_DQTYPE_USER, qinf);
678 if (XFS_IS_GQUOTA_ON(mp))
679 xfs_qm_set_defquota(mp, XFS_DQTYPE_GROUP, qinf);
680 if (XFS_IS_PQUOTA_ON(mp))
681 xfs_qm_set_defquota(mp, XFS_DQTYPE_PROJ, qinf);
689 mp->m_super->s_id);
703 mp->m_quotainfo = NULL;
714 struct xfs_mount *mp)
718 qi = mp->m_quotainfo;
727 mp->m_quotainfo = NULL;
736 struct xfs_mount *mp,
752 if (!xfs_has_pquotino(mp) &&
757 (mp->m_sb.sb_gquotino != NULLFSINO)) {
758 ino = mp->m_sb.sb_gquotino;
759 if (XFS_IS_CORRUPT(mp,
760 mp->m_sb.sb_pquotino != NULLFSINO))
763 (mp->m_sb.sb_pquotino != NULLFSINO)) {
764 ino = mp->m_sb.sb_pquotino;
765 if (XFS_IS_CORRUPT(mp,
766 mp->m_sb.sb_gquotino != NULLFSINO))
770 error = xfs_iget(mp, NULL, ino, 0, 0, ipp);
773 mp->m_sb.sb_gquotino = NULLFSINO;
774 mp->m_sb.sb_pquotino = NULLFSINO;
779 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_create,
780 need_alloc ? XFS_QM_QINOCREATE_SPACE_RES(mp) : 0,
803 spin_lock(&mp->m_sb_lock);
805 ASSERT(!xfs_has_quota(mp));
807 xfs_add_quota(mp);
808 mp->m_sb.sb_uquotino = NULLFSINO;
809 mp->m_sb.sb_gquotino = NULLFSINO;
810 mp->m_sb.sb_pquotino = NULLFSINO;
813 mp->m_sb.sb_qflags = mp->m_qflags & XFS_ALL_QUOTA_ACCT;
816 mp->m_sb.sb_uquotino = (*ipp)->i_ino;
818 mp->m_sb.sb_gquotino = (*ipp)->i_ino;
820 mp->m_sb.sb_pquotino = (*ipp)->i_ino;
821 spin_unlock(&mp->m_sb_lock);
826 ASSERT(xfs_is_shutdown(mp));
827 xfs_alert(mp, "%s failed (error %d)!", __func__, error);
837 struct xfs_mount *mp,
852 j = (int)XFS_FSB_TO_B(mp, XFS_DQUOT_CLUSTER_SIZE_FSB) /
854 ASSERT(mp->m_quotainfo->qi_dqperchunk == j);
857 for (j = 0; j < mp->m_quotainfo->qi_dqperchunk; j++) {
868 if (xfs_dqblk_verify(mp, &dqb[j], id + j) ||
870 xfs_dqblk_repair(mp, &dqb[j], id + j, type);
893 if (xfs_has_bigtime(mp))
897 if (xfs_has_crc(mp)) {
907 struct xfs_mount *mp,
929 error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp,
930 XFS_FSB_TO_DADDR(mp, bno),
931 mp->m_quotainfo->qi_dqchunklen, 0, &bp,
942 error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp,
943 XFS_FSB_TO_DADDR(mp, bno),
944 mp->m_quotainfo->qi_dqchunklen, 0, &bp,
957 xfs_qm_reset_dqcounts(mp, bp, firstid, type);
963 firstid += mp->m_quotainfo->qi_dqperchunk;
975 struct xfs_mount *mp,
1001 maxlblkcnt = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
1030 mp->m_quotainfo->qi_dqperchunk;
1039 xfs_buf_readahead(mp->m_ddev_targp,
1040 XFS_FSB_TO_DADDR(mp, rablkno),
1041 mp->m_quotainfo->qi_dqchunklen,
1050 error = xfs_qm_reset_dqcounts_all(mp, firstid,
1079 struct xfs_mount *mp = ip->i_mount;
1085 error = xfs_qm_dqget(mp, id, type, true, &dqp);
1134 struct xfs_mount *mp,
1144 ASSERT(XFS_IS_QUOTA_ON(mp));
1150 if (xfs_is_quota_inode(&mp->m_sb, ino))
1157 error = xfs_iget(mp, tp, ino, XFS_IGET_DONTCACHE, 0, &ip);
1171 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
1203 if (XFS_IS_UQUOTA_ON(mp)) {
1210 if (XFS_IS_GQUOTA_ON(mp)) {
1217 if (XFS_IS_PQUOTA_ON(mp)) {
1234 struct xfs_mount *mp = dqp->q_mount;
1255 error = xfs_buf_incore(mp->m_ddev_targp, dqp->q_blkno,
1256 mp->m_quotainfo->qi_dqchunklen, 0, &bp);
1291 xfs_mount_t *mp)
1296 struct xfs_inode *uip = mp->m_quotainfo->qi_uquotaip;
1297 struct xfs_inode *gip = mp->m_quotainfo->qi_gquotaip;
1298 struct xfs_inode *pip = mp->m_quotainfo->qi_pquotaip;
1303 ASSERT(XFS_IS_QUOTA_ON(mp));
1305 xfs_notice(mp, "Quotacheck needed: Please wait.");
1313 error = xfs_qm_reset_dqcounts_buf(mp, uip, XFS_DQTYPE_USER,
1321 error = xfs_qm_reset_dqcounts_buf(mp, gip, XFS_DQTYPE_GROUP,
1329 error = xfs_qm_reset_dqcounts_buf(mp, pip, XFS_DQTYPE_PROJ,
1336 xfs_set_quotacheck_running(mp);
1337 error = xfs_iwalk_threaded(mp, 0, 0, xfs_qm_dqusage_adjust, 0, true,
1339 xfs_clear_quotacheck_running(mp);
1353 if (XFS_IS_UQUOTA_ON(mp)) {
1354 error = xfs_qm_dquot_walk(mp, XFS_DQTYPE_USER, xfs_qm_flush_one,
1357 if (XFS_IS_GQUOTA_ON(mp)) {
1358 error2 = xfs_qm_dquot_walk(mp, XFS_DQTYPE_GROUP, xfs_qm_flush_one,
1363 if (XFS_IS_PQUOTA_ON(mp)) {
1364 error2 = xfs_qm_dquot_walk(mp, XFS_DQTYPE_PROJ, xfs_qm_flush_one,
1389 mp->m_qflags &= ~XFS_ALL_QUOTA_CHKD;
1390 mp->m_qflags |= flags;
1396 xfs_warn(mp,
1402 ASSERT(mp->m_quotainfo != NULL);
1403 xfs_qm_destroy_quotainfo(mp);
1404 if (xfs_mount_reset_sbqflags(mp)) {
1405 xfs_warn(mp,
1409 xfs_notice(mp, "Quotacheck: Done.");
1417 * below that frees mp->m_quotainfo. To avoid this race, flush all the
1422 xfs_inodegc_flush(mp);
1423 xfs_qm_dqpurge_all(mp);
1439 struct xfs_mount *mp)
1448 if (mp->m_sb.sb_rextents) {
1449 xfs_notice(mp, "Cannot turn on quotas for realtime filesystem");
1450 mp->m_qflags = 0;
1454 ASSERT(XFS_IS_QUOTA_ON(mp));
1460 error = xfs_qm_init_quotainfo(mp);
1465 ASSERT(mp->m_quotainfo == NULL);
1466 mp->m_qflags = 0;
1472 if (XFS_QM_NEED_QUOTACHECK(mp)) {
1473 error = xfs_qm_quotacheck(mp);
1484 if (!XFS_IS_UQUOTA_ON(mp))
1485 mp->m_qflags &= ~XFS_UQUOTA_CHKD;
1486 if (!XFS_IS_GQUOTA_ON(mp))
1487 mp->m_qflags &= ~XFS_GQUOTA_CHKD;
1488 if (!XFS_IS_PQUOTA_ON(mp))
1489 mp->m_qflags &= ~XFS_PQUOTA_CHKD;
1496 spin_lock(&mp->m_sb_lock);
1497 sbf = mp->m_sb.sb_qflags;
1498 mp->m_sb.sb_qflags = mp->m_qflags & XFS_MOUNT_QUOTA_ALL;
1499 spin_unlock(&mp->m_sb_lock);
1501 if (sbf != (mp->m_qflags & XFS_MOUNT_QUOTA_ALL)) {
1502 if (xfs_sync_sb(mp, false)) {
1509 ASSERT(!(XFS_IS_QUOTA_ON(mp)));
1510 xfs_alert(mp, "%s: Superblock update failed!",
1516 xfs_warn(mp, "Failed to initialize disk quotas.");
1527 xfs_mount_t *mp)
1535 ASSERT(mp->m_quotainfo);
1540 if (xfs_has_quota(mp)) {
1541 if (XFS_IS_UQUOTA_ON(mp) &&
1542 mp->m_sb.sb_uquotino != NULLFSINO) {
1543 ASSERT(mp->m_sb.sb_uquotino > 0);
1544 error = xfs_iget(mp, NULL, mp->m_sb.sb_uquotino,
1549 if (XFS_IS_GQUOTA_ON(mp) &&
1550 mp->m_sb.sb_gquotino != NULLFSINO) {
1551 ASSERT(mp->m_sb.sb_gquotino > 0);
1552 error = xfs_iget(mp, NULL, mp->m_sb.sb_gquotino,
1557 if (XFS_IS_PQUOTA_ON(mp) &&
1558 mp->m_sb.sb_pquotino != NULLFSINO) {
1559 ASSERT(mp->m_sb.sb_pquotino > 0);
1560 error = xfs_iget(mp, NULL, mp->m_sb.sb_pquotino,
1575 if (XFS_IS_UQUOTA_ON(mp) && uip == NULL) {
1576 error = xfs_qm_qino_alloc(mp, &uip,
1583 if (XFS_IS_GQUOTA_ON(mp) && gip == NULL) {
1584 error = xfs_qm_qino_alloc(mp, &gip,
1591 if (XFS_IS_PQUOTA_ON(mp) && pip == NULL) {
1592 error = xfs_qm_qino_alloc(mp, &pip,
1598 mp->m_quotainfo->qi_uquotaip = uip;
1599 mp->m_quotainfo->qi_gquotaip = gip;
1600 mp->m_quotainfo->qi_pquotaip = pip;
1636 struct xfs_mount *mp = dqp->q_mount;
1637 struct xfs_quotainfo *qi = mp->m_quotainfo;
1672 struct xfs_mount *mp = ip->i_mount;
1681 if (!XFS_IS_QUOTA_ON(mp))
1694 if (XFS_NOT_DQATTACHED(mp, ip)) {
1702 if ((flags & XFS_QMOPT_UQUOTA) && XFS_IS_UQUOTA_ON(mp)) {
1715 error = xfs_qm_dqget(mp, from_kuid(user_ns, uid),
1736 if ((flags & XFS_QMOPT_GQUOTA) && XFS_IS_GQUOTA_ON(mp)) {
1740 error = xfs_qm_dqget(mp, from_kgid(user_ns, gid),
1754 if ((flags & XFS_QMOPT_PQUOTA) && XFS_IS_PQUOTA_ON(mp)) {
1758 error = xfs_qm_dqget(mp, prid,
1862 struct xfs_mount *mp = i_tab[0]->i_mount;
1865 if (!XFS_IS_QUOTA_ON(mp))
1876 if (XFS_NOT_DQATTACHED(mp, ip)) {
1894 struct xfs_mount *mp = tp->t_mountp;
1896 if (!XFS_IS_QUOTA_ON(mp))
1901 if (udqp && XFS_IS_UQUOTA_ON(mp)) {
1908 if (gdqp && XFS_IS_GQUOTA_ON(mp)) {
1915 if (pdqp && XFS_IS_PQUOTA_ON(mp)) {