Lines Matching defs:dqp

76 	struct dquot *dqp, *xdqp;
106 dqp = xdqp;
107 mutex_enter(&dqp->dq_lock);
108 ASSERT(ip->i_uid == dqp->dq_uid);
110 if (dqp->dq_fhardlimit == 0 && dqp->dq_fsoftlimit == 0 &&
111 dqp->dq_bhardlimit == 0 && dqp->dq_bsoftlimit == 0) {
112 dqput(dqp);
113 mutex_exit(&dqp->dq_lock);
114 dqp = NULL;
116 mutex_exit(&dqp->dq_lock);
118 return (dqp);
128 struct dquot *dqp;
153 dqp = ip->i_dquot;
158 ASSERT(dqp == NULL || ip->i_uid == dqp->dq_uid);
166 ASSERT(dqp == NULL);
220 * Make sure dqp and the current quota info agree.
229 ASSERT(mismatch_ok || dqp == expect_dq);
237 ASSERT(mismatch_ok || dqp == NULL);
244 ASSERT(dqp);
251 ASSERT(dqp == expect_dq);
270 if (dqp == NULL)
279 mutex_enter(&dqp->dq_lock);
281 dqp->dq_flags |= DQ_MOD;
283 if (dqp->dq_curblocks < abs_change)
284 dqp->dq_curblocks = 0;
286 dqp->dq_curblocks += change;
287 if (dqp->dq_curblocks < dqp->dq_bsoftlimit)
288 dqp->dq_btimelimit = 0;
289 dqp->dq_flags &= ~DQ_BLKS;
290 TRANS_QUOTA(dqp);
291 mutex_exit(&dqp->dq_lock);
300 ncurblocks = (uint64_t)dqp->dq_curblocks + change;
319 if (dqp->dq_bhardlimit && ncurblocks >= (uint64_t)dqp->dq_bhardlimit &&
323 if ((dqp->dq_flags & DQ_BLKS) == 0 &&
326 dqp->dq_flags |= DQ_BLKS;
331 if (dqp->dq_bsoftlimit && ncurblocks >= (uint64_t)dqp->dq_bsoftlimit) {
333 if (dqp->dq_curblocks < dqp->dq_bsoftlimit ||
334 dqp->dq_btimelimit == 0) {
335 dqp->dq_flags |= DQ_MOD;
336 dqp->dq_btimelimit = now +
342 } else if (now > dqp->dq_btimelimit && !force) {
345 if ((dqp->dq_flags & DQ_BLKS) == 0 &&
348 dqp->dq_flags |= DQ_BLKS;
355 dqp->dq_flags |= DQ_MOD;
367 dqp->dq_curblocks = 0xffffffff;
370 dqp->dq_curblocks = ncurblocks;
374 if (dqp->dq_flags & DQ_MOD)
375 TRANS_QUOTA(dqp);
377 mutex_exit(&dqp->dq_lock);
422 struct dquot *dqp, *xdqp;
453 dqp = ip->i_dquot;
458 if (dqp == NULL)
460 mutex_enter(&dqp->dq_lock);
461 if (dqp->dq_curfiles) {
462 dqp->dq_curfiles--;
463 dqp->dq_flags |= DQ_MOD;
465 if (dqp->dq_curfiles < dqp->dq_fsoftlimit) {
466 dqp->dq_ftimelimit = 0;
467 dqp->dq_flags |= DQ_MOD;
469 dqp->dq_flags &= ~DQ_FILES;
470 if (dqp->dq_flags & DQ_MOD)
471 TRANS_QUOTA(dqp);
472 mutex_exit(&dqp->dq_lock);
483 dqp = xdqp;
484 mutex_enter(&dqp->dq_lock);
485 if (dqp->dq_fsoftlimit == 0 && dqp->dq_fhardlimit == 0) {
486 dqput(dqp);
487 mutex_exit(&dqp->dq_lock);
511 ncurfiles = dqp->dq_curfiles + change;
518 if (change == 1 && ncurfiles >= dqp->dq_fhardlimit &&
519 dqp->dq_fhardlimit && !force) {
522 if ((dqp->dq_flags & DQ_FILES) == 0 && uid == crgetruid(cr)) {
524 dqp->dq_flags |= DQ_FILES;
527 } else if (change == 1 && ncurfiles >= dqp->dq_fsoftlimit &&
528 dqp->dq_fsoftlimit) {
530 if (ncurfiles == dqp->dq_fsoftlimit ||
531 dqp->dq_ftimelimit == 0) {
532 dqp->dq_flags |= DQ_MOD;
533 dqp->dq_ftimelimit = now + ufsvfsp->vfs_ftimelimit;
537 } else if (now > dqp->dq_ftimelimit && !force) {
540 if ((dqp->dq_flags & DQ_FILES) == 0 &&
543 dqp->dq_flags |= DQ_FILES;
550 dqp->dq_flags |= DQ_MOD;
551 dqp->dq_curfiles += change;
553 if (dqp->dq_flags & DQ_MOD)
554 TRANS_QUOTA(dqp);
555 dqput(dqp);
556 mutex_exit(&dqp->dq_lock);
596 dqrele(struct dquot *dqp)
602 if (dqp != NULL) {
603 mutex_enter(&dqp->dq_lock);
604 if (dqp->dq_cnt == 1 && dqp->dq_flags & DQ_MOD)
605 dqupdate(dqp);
606 dqput(dqp);
607 mutex_exit(&dqp->dq_lock);