Lines Matching refs:dqp

74 	struct dquot *dqp, *xdqp;  in getinoquota()  local
104 dqp = xdqp; in getinoquota()
105 mutex_enter(&dqp->dq_lock); in getinoquota()
106 ASSERT(ip->i_uid == dqp->dq_uid); in getinoquota()
108 if (dqp->dq_fhardlimit == 0 && dqp->dq_fsoftlimit == 0 && in getinoquota()
109 dqp->dq_bhardlimit == 0 && dqp->dq_bsoftlimit == 0) { in getinoquota()
110 dqput(dqp); in getinoquota()
111 mutex_exit(&dqp->dq_lock); in getinoquota()
112 dqp = NULL; in getinoquota()
114 mutex_exit(&dqp->dq_lock); in getinoquota()
116 return (dqp); in getinoquota()
126 struct dquot *dqp; in chkdq() local
151 dqp = ip->i_dquot; in chkdq()
156 ASSERT(dqp == NULL || ip->i_uid == dqp->dq_uid); in chkdq()
164 ASSERT(dqp == NULL); in chkdq()
227 ASSERT(mismatch_ok || dqp == expect_dq); in chkdq()
235 ASSERT(mismatch_ok || dqp == NULL); in chkdq()
242 ASSERT(dqp); in chkdq()
249 ASSERT(dqp == expect_dq); in chkdq()
268 if (dqp == NULL) in chkdq()
277 mutex_enter(&dqp->dq_lock); in chkdq()
279 dqp->dq_flags |= DQ_MOD; in chkdq()
281 if (dqp->dq_curblocks < abs_change) in chkdq()
282 dqp->dq_curblocks = 0; in chkdq()
284 dqp->dq_curblocks += change; in chkdq()
285 if (dqp->dq_curblocks < dqp->dq_bsoftlimit) in chkdq()
286 dqp->dq_btimelimit = 0; in chkdq()
287 dqp->dq_flags &= ~DQ_BLKS; in chkdq()
288 TRANS_QUOTA(dqp); in chkdq()
289 mutex_exit(&dqp->dq_lock); in chkdq()
298 ncurblocks = (uint64_t)dqp->dq_curblocks + change; in chkdq()
317 if (dqp->dq_bhardlimit && ncurblocks >= (uint64_t)dqp->dq_bhardlimit && in chkdq()
321 if ((dqp->dq_flags & DQ_BLKS) == 0 && in chkdq()
324 dqp->dq_flags |= DQ_BLKS; in chkdq()
329 if (dqp->dq_bsoftlimit && ncurblocks >= (uint64_t)dqp->dq_bsoftlimit) { in chkdq()
331 if (dqp->dq_curblocks < dqp->dq_bsoftlimit || in chkdq()
332 dqp->dq_btimelimit == 0) { in chkdq()
333 dqp->dq_flags |= DQ_MOD; in chkdq()
334 dqp->dq_btimelimit = now + in chkdq()
340 } else if (now > dqp->dq_btimelimit && !force) { in chkdq()
343 if ((dqp->dq_flags & DQ_BLKS) == 0 && in chkdq()
346 dqp->dq_flags |= DQ_BLKS; in chkdq()
353 dqp->dq_flags |= DQ_MOD; in chkdq()
365 dqp->dq_curblocks = 0xffffffff; in chkdq()
368 dqp->dq_curblocks = ncurblocks; in chkdq()
372 if (dqp->dq_flags & DQ_MOD) in chkdq()
373 TRANS_QUOTA(dqp); in chkdq()
375 mutex_exit(&dqp->dq_lock); in chkdq()
420 struct dquot *dqp, *xdqp; in chkiq() local
451 dqp = ip->i_dquot; in chkiq()
456 if (dqp == NULL) in chkiq()
458 mutex_enter(&dqp->dq_lock); in chkiq()
459 if (dqp->dq_curfiles) { in chkiq()
460 dqp->dq_curfiles--; in chkiq()
461 dqp->dq_flags |= DQ_MOD; in chkiq()
463 if (dqp->dq_curfiles < dqp->dq_fsoftlimit) { in chkiq()
464 dqp->dq_ftimelimit = 0; in chkiq()
465 dqp->dq_flags |= DQ_MOD; in chkiq()
467 dqp->dq_flags &= ~DQ_FILES; in chkiq()
468 if (dqp->dq_flags & DQ_MOD) in chkiq()
469 TRANS_QUOTA(dqp); in chkiq()
470 mutex_exit(&dqp->dq_lock); in chkiq()
481 dqp = xdqp; in chkiq()
482 mutex_enter(&dqp->dq_lock); in chkiq()
483 if (dqp->dq_fsoftlimit == 0 && dqp->dq_fhardlimit == 0) { in chkiq()
484 dqput(dqp); in chkiq()
485 mutex_exit(&dqp->dq_lock); in chkiq()
509 ncurfiles = dqp->dq_curfiles + change; in chkiq()
516 if (change == 1 && ncurfiles >= dqp->dq_fhardlimit && in chkiq()
517 dqp->dq_fhardlimit && !force) { in chkiq()
520 if ((dqp->dq_flags & DQ_FILES) == 0 && uid == crgetruid(cr)) { in chkiq()
522 dqp->dq_flags |= DQ_FILES; in chkiq()
525 } else if (change == 1 && ncurfiles >= dqp->dq_fsoftlimit && in chkiq()
526 dqp->dq_fsoftlimit) { in chkiq()
528 if (ncurfiles == dqp->dq_fsoftlimit || in chkiq()
529 dqp->dq_ftimelimit == 0) { in chkiq()
530 dqp->dq_flags |= DQ_MOD; in chkiq()
531 dqp->dq_ftimelimit = now + ufsvfsp->vfs_ftimelimit; in chkiq()
535 } else if (now > dqp->dq_ftimelimit && !force) { in chkiq()
538 if ((dqp->dq_flags & DQ_FILES) == 0 && in chkiq()
541 dqp->dq_flags |= DQ_FILES; in chkiq()
548 dqp->dq_flags |= DQ_MOD; in chkiq()
549 dqp->dq_curfiles += change; in chkiq()
551 if (dqp->dq_flags & DQ_MOD) in chkiq()
552 TRANS_QUOTA(dqp); in chkiq()
553 dqput(dqp); in chkiq()
554 mutex_exit(&dqp->dq_lock); in chkiq()
594 dqrele(struct dquot *dqp) in dqrele() argument
600 if (dqp != NULL) { in dqrele()
601 mutex_enter(&dqp->dq_lock); in dqrele()
602 if (dqp->dq_cnt == 1 && dqp->dq_flags & DQ_MOD) in dqrele()
603 dqupdate(dqp); in dqrele()
604 dqput(dqp); in dqrele()
605 mutex_exit(&dqp->dq_lock); in dqrele()