Lines Matching refs:mp
84 xfs_mount_t *mp, in xfs_qm_quotactl() argument
101 if (XFS_IS_QUOTA_ON(mp)) in xfs_qm_quotactl()
103 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
105 return (xfs_qm_scall_trunc_qfiles(mp, in xfs_qm_quotactl()
112 return (xfs_qm_scall_getqstat(mp, (fs_quota_stat_t *)addr)); in xfs_qm_quotactl()
119 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
121 return (xfs_qm_scall_quotaon(mp, in xfs_qm_quotactl()
125 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
130 return xfs_sync_inodes(mp, SYNC_DELWRI); in xfs_qm_quotactl()
136 if (! XFS_IS_QUOTA_ON(mp)) in xfs_qm_quotactl()
141 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
143 error = xfs_qm_scall_quotaoff(mp, in xfs_qm_quotactl()
149 error = xfs_qm_scall_getquota(mp, (xfs_dqid_t)id, XFS_DQ_USER, in xfs_qm_quotactl()
153 error = xfs_qm_scall_getquota(mp, (xfs_dqid_t)id, XFS_DQ_GROUP, in xfs_qm_quotactl()
157 error = xfs_qm_scall_getquota(mp, (xfs_dqid_t)id, XFS_DQ_PROJ, in xfs_qm_quotactl()
162 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
164 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_USER, in xfs_qm_quotactl()
168 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
170 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_GROUP, in xfs_qm_quotactl()
174 if (mp->m_flags & XFS_MOUNT_RDONLY) in xfs_qm_quotactl()
176 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_PROJ, in xfs_qm_quotactl()
198 xfs_mount_t *mp, in xfs_qm_scall_quotaoff() argument
215 if ((mp->m_qflags & flags) == 0) in xfs_qm_scall_quotaoff()
227 ASSERT(mp->m_quotainfo); in xfs_qm_scall_quotaoff()
228 if (mp->m_quotainfo) in xfs_qm_scall_quotaoff()
229 mutex_lock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaoff()
231 ASSERT(mp->m_quotainfo); in xfs_qm_scall_quotaoff()
237 mp->m_qflags &= ~(flags); in xfs_qm_scall_quotaoff()
239 spin_lock(&mp->m_sb_lock); in xfs_qm_scall_quotaoff()
240 mp->m_sb.sb_qflags = mp->m_qflags; in xfs_qm_scall_quotaoff()
241 spin_unlock(&mp->m_sb_lock); in xfs_qm_scall_quotaoff()
242 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaoff()
245 error = xfs_qm_write_sb_changes(mp, XFS_SB_QFLAGS); in xfs_qm_scall_quotaoff()
275 if ((mp->m_qflags & flags) == 0) { in xfs_qm_scall_quotaoff()
276 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaoff()
285 error = xfs_qm_log_quotaoff(mp, &qoffstart, flags); in xfs_qm_scall_quotaoff()
300 mp->m_qflags &= ~inactivate_flags; in xfs_qm_scall_quotaoff()
312 xfs_qm_dqrele_all_inodes(mp, flags); in xfs_qm_scall_quotaoff()
319 mp->m_qflags &= ~(flags); in xfs_qm_scall_quotaoff()
329 while ((nculprits = xfs_qm_dqpurge_all(mp, dqtype|XFS_QMOPT_QUOTAOFF))) in xfs_qm_scall_quotaoff()
343 error = xfs_qm_log_quotaoff_end(mp, qoffstart, flags); in xfs_qm_scall_quotaoff()
346 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); in xfs_qm_scall_quotaoff()
355 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaoff()
356 xfs_qm_destroy_quotainfo(mp); in xfs_qm_scall_quotaoff()
364 if ((dqtype & XFS_QMOPT_UQUOTA) && XFS_QI_UQIP(mp)) { in xfs_qm_scall_quotaoff()
365 IRELE(XFS_QI_UQIP(mp)); in xfs_qm_scall_quotaoff()
366 XFS_QI_UQIP(mp) = NULL; in xfs_qm_scall_quotaoff()
368 if ((dqtype & (XFS_QMOPT_GQUOTA|XFS_QMOPT_PQUOTA)) && XFS_QI_GQIP(mp)) { in xfs_qm_scall_quotaoff()
369 IRELE(XFS_QI_GQIP(mp)); in xfs_qm_scall_quotaoff()
370 XFS_QI_GQIP(mp) = NULL; in xfs_qm_scall_quotaoff()
373 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaoff()
380 xfs_mount_t *mp, in xfs_qm_scall_trunc_qfiles() argument
388 if (!xfs_sb_version_hasquota(&mp->m_sb) || flags == 0) { in xfs_qm_scall_trunc_qfiles()
389 qdprintk("qtrunc flags=%x m_qflags=%x\n", flags, mp->m_qflags); in xfs_qm_scall_trunc_qfiles()
393 if ((flags & XFS_DQ_USER) && mp->m_sb.sb_uquotino != NULLFSINO) { in xfs_qm_scall_trunc_qfiles()
394 error = xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, 0, 0, &qip, 0); in xfs_qm_scall_trunc_qfiles()
396 error = xfs_truncate_file(mp, qip); in xfs_qm_scall_trunc_qfiles()
402 mp->m_sb.sb_gquotino != NULLFSINO) { in xfs_qm_scall_trunc_qfiles()
403 error2 = xfs_iget(mp, NULL, mp->m_sb.sb_gquotino, 0, 0, &qip, 0); in xfs_qm_scall_trunc_qfiles()
405 error2 = xfs_truncate_file(mp, qip); in xfs_qm_scall_trunc_qfiles()
421 xfs_mount_t *mp, in xfs_qm_scall_quotaon() argument
442 qdprintk("quotaon: zero flags, m_qflags=%x\n", mp->m_qflags); in xfs_qm_scall_quotaon()
455 (mp->m_sb.sb_qflags & XFS_UQUOTA_ACCT) == 0 && in xfs_qm_scall_quotaon()
459 (mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) == 0 && in xfs_qm_scall_quotaon()
461 (mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) == 0 && in xfs_qm_scall_quotaon()
464 flags, mp->m_sb.sb_qflags); in xfs_qm_scall_quotaon()
470 if ((mp->m_qflags & flags) == flags) in xfs_qm_scall_quotaon()
477 spin_lock(&mp->m_sb_lock); in xfs_qm_scall_quotaon()
478 qf = mp->m_sb.sb_qflags; in xfs_qm_scall_quotaon()
479 mp->m_sb.sb_qflags = qf | flags; in xfs_qm_scall_quotaon()
480 spin_unlock(&mp->m_sb_lock); in xfs_qm_scall_quotaon()
489 if ((error = xfs_qm_write_sb_changes(mp, sbflags))) in xfs_qm_scall_quotaon()
494 if (((mp->m_sb.sb_qflags & XFS_UQUOTA_ACCT) != in xfs_qm_scall_quotaon()
495 (mp->m_qflags & XFS_UQUOTA_ACCT)) || in xfs_qm_scall_quotaon()
496 ((mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) != in xfs_qm_scall_quotaon()
497 (mp->m_qflags & XFS_PQUOTA_ACCT)) || in xfs_qm_scall_quotaon()
498 ((mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) != in xfs_qm_scall_quotaon()
499 (mp->m_qflags & XFS_GQUOTA_ACCT)) || in xfs_qm_scall_quotaon()
503 if (! XFS_IS_QUOTA_RUNNING(mp)) in xfs_qm_scall_quotaon()
509 mutex_lock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaon()
510 mp->m_qflags |= (flags & XFS_ALL_QUOTA_ENFD); in xfs_qm_scall_quotaon()
511 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_quotaon()
522 xfs_mount_t *mp, in xfs_qm_scall_getqstat() argument
533 if (!xfs_sb_version_hasquota(&mp->m_sb)) { in xfs_qm_scall_getqstat()
538 out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & in xfs_qm_scall_getqstat()
542 out->qs_uquota.qfs_ino = mp->m_sb.sb_uquotino; in xfs_qm_scall_getqstat()
543 out->qs_gquota.qfs_ino = mp->m_sb.sb_gquotino; in xfs_qm_scall_getqstat()
545 if (mp->m_quotainfo) { in xfs_qm_scall_getqstat()
546 uip = mp->m_quotainfo->qi_uquotaip; in xfs_qm_scall_getqstat()
547 gip = mp->m_quotainfo->qi_gquotaip; in xfs_qm_scall_getqstat()
549 if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { in xfs_qm_scall_getqstat()
550 if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, in xfs_qm_scall_getqstat()
554 if (!gip && mp->m_sb.sb_gquotino != NULLFSINO) { in xfs_qm_scall_getqstat()
555 if (xfs_iget(mp, NULL, mp->m_sb.sb_gquotino, in xfs_qm_scall_getqstat()
571 if (mp->m_quotainfo) { in xfs_qm_scall_getqstat()
572 out->qs_incoredqs = XFS_QI_MPLNDQUOTS(mp); in xfs_qm_scall_getqstat()
573 out->qs_btimelimit = XFS_QI_BTIMELIMIT(mp); in xfs_qm_scall_getqstat()
574 out->qs_itimelimit = XFS_QI_ITIMELIMIT(mp); in xfs_qm_scall_getqstat()
575 out->qs_rtbtimelimit = XFS_QI_RTBTIMELIMIT(mp); in xfs_qm_scall_getqstat()
576 out->qs_bwarnlimit = XFS_QI_BWARNLIMIT(mp); in xfs_qm_scall_getqstat()
577 out->qs_iwarnlimit = XFS_QI_IWARNLIMIT(mp); in xfs_qm_scall_getqstat()
587 xfs_mount_t *mp, in xfs_qm_scall_setqlim() argument
605 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SETQLIM); in xfs_qm_scall_setqlim()
618 mutex_lock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_setqlim()
624 if ((error = xfs_qm_dqget(mp, NULL, id, type, XFS_QMOPT_DQALLOC, &dqp))) { in xfs_qm_scall_setqlim()
626 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_setqlim()
638 (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_hardlimit) : in xfs_qm_scall_setqlim()
641 (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_softlimit) : in xfs_qm_scall_setqlim()
647 mp->m_quotainfo->qi_bhardlimit = hard; in xfs_qm_scall_setqlim()
648 mp->m_quotainfo->qi_bsoftlimit = soft; in xfs_qm_scall_setqlim()
654 (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_hardlimit) : in xfs_qm_scall_setqlim()
657 (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_softlimit) : in xfs_qm_scall_setqlim()
663 mp->m_quotainfo->qi_rtbhardlimit = hard; in xfs_qm_scall_setqlim()
664 mp->m_quotainfo->qi_rtbsoftlimit = soft; in xfs_qm_scall_setqlim()
680 mp->m_quotainfo->qi_ihardlimit = hard; in xfs_qm_scall_setqlim()
681 mp->m_quotainfo->qi_isoftlimit = soft; in xfs_qm_scall_setqlim()
706 mp->m_quotainfo->qi_btimelimit = newlim->d_btimer; in xfs_qm_scall_setqlim()
710 mp->m_quotainfo->qi_itimelimit = newlim->d_itimer; in xfs_qm_scall_setqlim()
714 mp->m_quotainfo->qi_rtbtimelimit = newlim->d_rtbtimer; in xfs_qm_scall_setqlim()
718 mp->m_quotainfo->qi_bwarnlimit = newlim->d_bwarns; in xfs_qm_scall_setqlim()
720 mp->m_quotainfo->qi_iwarnlimit = newlim->d_iwarns; in xfs_qm_scall_setqlim()
722 mp->m_quotainfo->qi_rtbwarnlimit = newlim->d_rtbwarns; in xfs_qm_scall_setqlim()
731 xfs_qm_adjust_dqtimers(mp, ddq); in xfs_qm_scall_setqlim()
740 mutex_unlock(&(XFS_QI_QOFFLOCK(mp))); in xfs_qm_scall_setqlim()
747 xfs_mount_t *mp, in xfs_qm_scall_getquota() argument
760 if ((error = xfs_qm_dqget(mp, NULL, id, type, 0, &dqp))) { in xfs_qm_scall_getquota()
777 xfs_qm_export_dquot(mp, &dqp->q_core, out); in xfs_qm_scall_getquota()
785 xfs_mount_t *mp, in xfs_qm_log_quotaoff_end() argument
793 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_QUOTAOFF_END); in xfs_qm_log_quotaoff_end()
818 xfs_mount_t *mp, in xfs_qm_log_quotaoff() argument
827 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_QUOTAOFF); in xfs_qm_log_quotaoff()
830 mp->m_sb.sb_sectsize + 128, in xfs_qm_log_quotaoff()
840 spin_lock(&mp->m_sb_lock); in xfs_qm_log_quotaoff()
841 oldsbqflag = mp->m_sb.sb_qflags; in xfs_qm_log_quotaoff()
842 mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL; in xfs_qm_log_quotaoff()
843 spin_unlock(&mp->m_sb_lock); in xfs_qm_log_quotaoff()
862 spin_lock(&mp->m_sb_lock); in xfs_qm_log_quotaoff()
863 mp->m_sb.sb_qflags = oldsbqflag; in xfs_qm_log_quotaoff()
864 spin_unlock(&mp->m_sb_lock); in xfs_qm_log_quotaoff()
879 xfs_mount_t *mp, in xfs_qm_export_dquot() argument
888 XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_blk_hardlimit)); in xfs_qm_export_dquot()
890 XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_blk_softlimit)); in xfs_qm_export_dquot()
893 dst->d_bcount = XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_bcount)); in xfs_qm_export_dquot()
900 XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_rtb_hardlimit)); in xfs_qm_export_dquot()
902 XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_rtb_softlimit)); in xfs_qm_export_dquot()
903 dst->d_rtbcount = XFS_FSB_TO_BB(mp, be64_to_cpu(src->d_rtbcount)); in xfs_qm_export_dquot()
912 if ((!XFS_IS_UQUOTA_ENFORCED(mp) && src->d_flags == XFS_DQ_USER) || in xfs_qm_export_dquot()
913 (!XFS_IS_OQUOTA_ENFORCED(mp) && in xfs_qm_export_dquot()
921 if (((XFS_IS_UQUOTA_ENFORCED(mp) && dst->d_flags == XFS_USER_QUOTA) || in xfs_qm_export_dquot()
922 (XFS_IS_OQUOTA_ENFORCED(mp) && in xfs_qm_export_dquot()
1029 xfs_mount_t *mp, in xfs_qm_dqrele_inodes_ag() argument
1034 xfs_perag_t *pag = &mp->m_perag[ag]; in xfs_qm_dqrele_inodes_ag()
1059 first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); in xfs_qm_dqrele_inodes_ag()
1060 if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) { in xfs_qm_dqrele_inodes_ag()
1066 if (ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { in xfs_qm_dqrele_inodes_ag()
1112 struct xfs_mount *mp, in xfs_qm_dqrele_all_inodes() argument
1117 ASSERT(mp->m_quotainfo); in xfs_qm_dqrele_all_inodes()
1118 for (i = 0; i < mp->m_sb.sb_agcount; i++) { in xfs_qm_dqrele_all_inodes()
1119 if (!mp->m_perag[i].pag_ici_init) in xfs_qm_dqrele_all_inodes()
1121 xfs_qm_dqrele_inodes_ag(mp, i, flags); in xfs_qm_dqrele_all_inodes()
1139 #define DQTEST_HASHVAL(mp, id) (((__psunsigned_t)(mp) + \ argument
1143 #define DQTEST_HASH(mp, id, type) ((type & XFS_DQ_USER) ? \ argument
1145 DQTEST_HASHVAL(mp, id)) : \
1147 DQTEST_HASHVAL(mp, id)))
1282 xfs_mount_t *mp, in xfs_qm_internalqcheck_dqget() argument
1290 h = DQTEST_HASH(mp, id, type); in xfs_qm_internalqcheck_dqget()
1294 if (d->d_id == id && mp == d->q_mount) { in xfs_qm_internalqcheck_dqget()
1302 d->q_mount = mp; in xfs_qm_internalqcheck_dqget()
1311 xfs_mount_t *mp, in xfs_qm_internalqcheck_get_dquots() argument
1318 if (XFS_IS_UQUOTA_ON(mp)) in xfs_qm_internalqcheck_get_dquots()
1319 xfs_qm_internalqcheck_dqget(mp, uid, XFS_DQ_USER, ud); in xfs_qm_internalqcheck_get_dquots()
1320 if (XFS_IS_GQUOTA_ON(mp)) in xfs_qm_internalqcheck_get_dquots()
1321 xfs_qm_internalqcheck_dqget(mp, gid, XFS_DQ_GROUP, gd); in xfs_qm_internalqcheck_get_dquots()
1322 else if (XFS_IS_PQUOTA_ON(mp)) in xfs_qm_internalqcheck_get_dquots()
1323 xfs_qm_internalqcheck_dqget(mp, projid, XFS_DQ_PROJ, gd); in xfs_qm_internalqcheck_get_dquots()
1338 xfs_mount_t *mp, /* mount point for filesystem */ in xfs_qm_internalqcheck_adjust() argument
1354 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_internalqcheck_adjust()
1356 if (ino == mp->m_sb.sb_uquotino || ino == mp->m_sb.sb_gquotino) { in xfs_qm_internalqcheck_adjust()
1360 (unsigned long long) mp->m_sb.sb_uquotino, in xfs_qm_internalqcheck_adjust()
1361 (unsigned long long) mp->m_sb.sb_gquotino); in xfs_qm_internalqcheck_adjust()
1367 if ((error = xfs_iget(mp, NULL, ino, 0, lock_flags, &ip, bno))) { in xfs_qm_internalqcheck_adjust()
1383 xfs_qm_internalqcheck_get_dquots(mp, in xfs_qm_internalqcheck_adjust()
1388 if (XFS_IS_UQUOTA_ON(mp)) { in xfs_qm_internalqcheck_adjust()
1392 if (XFS_IS_OQUOTA_ON(mp)) { in xfs_qm_internalqcheck_adjust()
1405 xfs_mount_t *mp) in xfs_qm_internalqcheck() argument
1420 if (! XFS_IS_QUOTA_ON(mp)) in xfs_qm_internalqcheck()
1423 xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE | XFS_LOG_SYNC); in xfs_qm_internalqcheck()
1424 XFS_bflush(mp->m_ddev_targp); in xfs_qm_internalqcheck()
1425 xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE | XFS_LOG_SYNC); in xfs_qm_internalqcheck()
1426 XFS_bflush(mp->m_ddev_targp); in xfs_qm_internalqcheck()
1440 if ((error = xfs_bulkstat(mp, &lastino, &count, in xfs_qm_internalqcheck()