Home | History | Annotate | Download | only in lfs

Lines Matching defs:dq

66 	struct dquot *dq;
76 if ((dq = ip->i_dquot[i]) == NODQUOT)
78 mutex_enter(&dq->dq_interlock);
79 ncurblocks = dq->dq_curblocks + change;
81 dq->dq_curblocks = ncurblocks;
83 dq->dq_curblocks = 0;
84 dq->dq_flags &= ~DQ_WARN(QL_BLOCK);
85 dq->dq_flags |= DQ_MOD;
86 mutex_exit(&dq->dq_interlock);
91 if ((dq = ip->i_dquot[i]) == NODQUOT)
97 mutex_enter(&dq->dq_interlock);
99 mutex_exit(&dq->dq_interlock);
105 if ((dq = ip->i_dquot[i]) == NODQUOT)
107 mutex_enter(&dq->dq_interlock);
108 dq->dq_curblocks += change;
109 dq->dq_flags |= DQ_MOD;
110 mutex_exit(&dq->dq_interlock);
122 struct dquot *dq = ip->i_dquot[type];
123 long ncurblocks = dq->dq_curblocks + change;
125 KASSERT(mutex_owned(&dq->dq_interlock));
129 if (ncurblocks >= dq->dq_bhardlimit && dq->dq_bhardlimit) {
130 if ((dq->dq_flags & DQ_WARN(QL_BLOCK)) == 0 &&
135 dq->dq_flags |= DQ_WARN(QL_BLOCK);
143 if (ncurblocks >= dq->dq_bsoftlimit && dq->dq_bsoftlimit) {
144 if (dq->dq_curblocks < dq->dq_bsoftlimit) {
145 dq->dq_btime =
153 if (time_second > dq->dq_btime) {
154 if ((dq->dq_flags & DQ_WARN(QL_BLOCK)) == 0 &&
160 dq->dq_flags |= DQ_WARN(QL_BLOCK);
174 struct dquot *dq;
184 if ((dq = ip->i_dquot[i]) == NODQUOT)
186 mutex_enter(&dq->dq_interlock);
187 ncurinodes = dq->dq_curinodes + change;
189 dq->dq_curinodes = ncurinodes;
191 dq->dq_curinodes = 0;
192 dq->dq_flags &= ~DQ_WARN(QL_FILE);
193 dq->dq_flags |= DQ_MOD;
194 mutex_exit(&dq->dq_interlock);
199 if ((dq = ip->i_dquot[i]) == NODQUOT)
204 mutex_enter(&dq->dq_interlock);
206 mutex_exit(&dq->dq_interlock);
212 if ((dq = ip->i_dquot[i]) == NODQUOT)
214 mutex_enter(&dq->dq_interlock);
215 dq->dq_curinodes += change;
216 dq->dq_flags |= DQ_MOD;
217 mutex_exit(&dq->dq_interlock);
229 struct dquot *dq = ip->i_dquot[type];
230 long ncurinodes = dq->dq_curinodes + change;
232 KASSERT(mutex_owned(&dq->dq_interlock));
236 if (ncurinodes >= dq->dq_ihardlimit && dq->dq_ihardlimit) {
237 if ((dq->dq_flags & DQ_WARN(QL_FILE)) == 0 &&
242 dq->dq_flags |= DQ_WARN(QL_FILE);
250 if (ncurinodes >= dq->dq_isoftlimit && dq->dq_isoftlimit) {
251 if (dq->dq_curinodes < dq->dq_isoftlimit) {
252 dq->dq_itime =
260 if (time_second > dq->dq_itime) {
261 if ((dq->dq_flags & DQ_WARN(QL_FILE)) == 0 &&
267 dq->dq_flags |= DQ_WARN(QL_FILE);
312 struct dquot *dq;
358 if (lfs_dqget(NULLVP, 0, ump, type, &dq) == 0) {
359 if (dq->dq_btime > 0)
360 ump->umq1_btime[type] = dq->dq_btime;
361 if (dq->dq_itime > 0)
362 ump->umq1_itime[type] = dq->dq_itime;
363 lfs_dqrele(NULLVP, dq);
415 struct dquot *dq;
446 dq = ip->i_dquot[type];
448 lfs_dqrele(vp, dq);
477 struct dquot *dq;
490 if ((error = lfs_dqget(NULLVP, 0, ump, idtype, &dq)) != 0)
494 if ((error = lfs_dqget(NULLVP, id, ump, idtype, &dq)) != 0)
497 lfs_dqblk_to_quotavals(&dq->dq_un.dq1_dqb, &blocks, &files);
498 lfs_dqrele(NULLVP, dq);
537 struct dquot *dq;
564 if ((error = lfs_dqget(NULLVP, id, ump, key->qk_idtype, &dq)) != 0)
566 mutex_enter(&dq->dq_interlock);
569 ump->umq1_btime[key->qk_idtype] = dq->dq_btime =
572 ump->umq1_itime[key->qk_idtype] = dq->dq_itime =
575 dq->dq_flags |= DQ_MOD;
576 mutex_exit(&dq->dq_interlock);
577 lfs_dqrele(NULLVP, dq);
581 if ((error = lfs_dqget(NULLVP, key->qk_id, ump, key->qk_idtype, &dq)) != 0)
583 mutex_enter(&dq->dq_interlock);
589 dqb.dqb_curblocks = dq->dq_curblocks;
590 dqb.dqb_curinodes = dq->dq_curinodes;
591 dqb.dqb_btime = dq->dq_btime;
592 dqb.dqb_itime = dq->dq_itime;
596 dqb.dqb_isoftlimit = dq->dq_isoftlimit;
597 dqb.dqb_ihardlimit = dq->dq_ihardlimit;
600 dq->dq_bsoftlimit;
601 dqb.dqb_bhardlimit = dq->dq_bhardlimit;
605 if (dq->dq_id == 0 && val->qv_grace != QUOTA_NOTIME) {
617 dq->dq_curblocks >= dqb.dqb_bsoftlimit &&
618 (dq->dq_bsoftlimit == 0 || dq->dq_curblocks < dq->dq_bsoftlimit))
621 dq->dq_curinodes >= dqb.dqb_isoftlimit &&
622 (dq->dq_isoftlimit == 0 || dq->dq_curinodes < dq->dq_isoftlimit))
624 dq->dq_un.dq1_dqb = dqb;
625 if (dq->dq_curblocks < dq->dq_bsoftlimit)
626 dq->dq_flags &= ~DQ_WARN(QL_BLOCK);
627 if (dq->dq_curinodes < dq->dq_isoftlimit)
628 dq->dq_flags &= ~DQ_WARN(QL_FILE);
629 if (dq->dq_isoftlimit == 0 && dq->dq_bsoftlimit == 0 &&
630 dq->dq_ihardlimit == 0 && dq->dq_bhardlimit == 0)
631 dq->dq_flags |= DQ_FAKE;
633 dq->dq_flags &= ~DQ_FAKE;
634 dq->dq_flags |= DQ_MOD;
635 mutex_exit(&dq->dq_interlock);
636 lfs_dqrele(NULLVP, dq);
648 struct dquot *dq;
655 dq = ndq;
656 mutex_enter(&dq->dq_interlock);
662 dqb->dqb_curblocks = dq->dq_curblocks;
663 dqb->dqb_curinodes = dq->dq_curinodes;
664 if (dq->dq_id != 0) {
665 dqb->dqb_btime = dq->dq_btime;
666 dqb->dqb_itime = dq->dq_itime;
669 dq->dq_curblocks >= dqb->dqb_bsoftlimit &&
670 (dq->dq_bsoftlimit == 0 || dq->dq_curblocks < dq->dq_bsoftlimit))
673 dq->dq_curinodes >= dqb->dqb_isoftlimit &&
674 (dq->dq_isoftlimit == 0 || dq->dq_curinodes < dq->dq_isoftlimit))
676 dq->dq_un.dq1_dqb = *dqb;
677 if (dq->dq_curblocks < dq->dq_bsoftlimit)
678 dq->dq_flags &= ~DQ_WARN(QL_BLOCK);
679 if (dq->dq_curinodes < dq->dq_isoftlimit)
680 dq->dq_flags &= ~DQ_WARN(QL_FILE);
681 if (dq->dq_isoftlimit == 0 && dq->dq_bsoftlimit == 0 &&
682 dq->dq_ihardlimit == 0 && dq->dq_bhardlimit == 0)
683 dq->dq_flags |= DQ_FAKE;
685 dq->dq_flags &= ~DQ_FAKE;
686 dq->dq_flags |= DQ_MOD;
687 mutex_exit(&dq->dq_interlock);
688 lfs_dqrele(NULLVP, dq);
698 struct dquot *dq;
709 dq = ndq;
710 mutex_enter(&dq->dq_interlock);
715 if (dq->dq_bsoftlimit && dq->dq_curblocks < dq->dq_bsoftlimit &&
716 usage.dqb_curblocks >= dq->dq_bsoftlimit)
717 dq->dq_btime = time_second + ump->umq1_btime[type];
718 if (dq->dq_isoftlimit && dq->dq_curinodes < dq->dq_isoftlimit &&
719 usage.dqb_curinodes >= dq->dq_isoftlimit)
720 dq->dq_itime = time_second + ump->umq1_itime[type];
721 dq->dq_curblocks = usage.dqb_curblocks;
722 dq->dq_curinodes = usage.dqb_curinodes;
723 if (dq->dq_curblocks < dq->dq_bsoftlimit)
724 dq->dq_flags &= ~DQ_WARN(QL_BLOCK);
725 if (dq->dq_curinodes < dq->dq_isoftlimit)
726 dq->dq_flags &= ~DQ_WARN(QL_FILE);
727 dq->dq_flags |= DQ_MOD;
728 mutex_exit(&dq->dq_interlock);
729 lfs_dqrele(NULLVP, dq);
743 struct dquot *dq;
772 dq = VTOI(vp)->i_dquot[i];
773 if (dq == NODQUOT)
775 mutex_enter(&dq->dq_interlock);
776 if (dq->dq_flags & DQ_MOD)
777 lfs_dq1sync(vp, dq);
778 mutex_exit(&dq->dq_interlock);
792 struct dquot *dq)
798 KASSERT(mutex_owned(&dq->dq_interlock));
802 aiov.iov_base = (void *)&dq->dq_un.dq1_dqb;
810 memset((void *)&dq->dq_un.dq1_dqb, 0, sizeof(struct dqblk));
822 if (dq->dq_isoftlimit == 0 && dq->dq_bsoftlimit == 0 &&
823 dq->dq_ihardlimit == 0 && dq->dq_bhardlimit == 0)
824 dq->dq_flags |= DQ_FAKE;
825 if (dq->dq_id != 0) {
826 if (dq->dq_btime == 0)
827 dq->dq_btime = time_second + ump->umq1_btime[type];
828 if (dq->dq_itime == 0)
829 dq->dq_itime = time_second + ump->umq1_itime[type];
838 lfs_dq1sync(struct vnode *vp, struct dquot *dq)
845 if (dq == NODQUOT)
847 KASSERT(mutex_owned(&dq->dq_interlock));
848 if ((dq->dq_flags & DQ_MOD) == 0)
850 if ((dqvp = dq->dq_ump->um_quotas[dq->dq_type]) == NULLVP)
856 aiov.iov_base = (void *)&dq->dq_un.dq1_dqb;
859 auio.uio_offset = (off_t)dq->dq_id * sizeof (struct dqblk);
862 error = VOP_WRITE(dqvp, &auio, 0, dq->dq_ump->um_cred[dq->dq_type]);
865 dq->dq_flags &= ~DQ_MOD;