Lines Matching defs:dqp

128 	register struct dquot *dqp;
146 for (dqp = dquot; dqp < dquotNDQUOT; dqp++) {
147 mutex_init(&dqp->dq_lock, NULL, MUTEX_DEFAULT, NULL);
148 dqp->dq_forw = dqp->dq_back = dqp;
149 dqinsheadfree(dqp);
164 struct dquot *dqp;
189 for (dqp = dhp->dqh_forw; dqp != (DQptr)dhp; dqp = dqp->dq_forw) {
190 if (dqp->dq_uid != uid || dqp->dq_ufsvfsp != ufsvfsp)
193 mutex_enter(&dqp->dq_lock);
198 if (dqp->dq_uid != uid || dqp->dq_ufsvfsp != ufsvfsp) {
199 mutex_exit(&dqp->dq_lock);
202 if (dqp->dq_flags & DQ_ERROR) {
203 mutex_exit(&dqp->dq_lock);
210 if (dqp->dq_cnt == 0) {
212 dqremfree(dqp);
215 dqp->dq_cnt++;
216 mutex_exit(&dqp->dq_lock);
217 *dqpp = dqp;
225 if ((dqp = dqfreelist.dq_freef) == &dqfreelist) {
232 if (dqp->dq_cnt != 0 || dqp->dq_flags != 0) {
233 panic("getdiskquota: dqp->dq_cnt: "
234 "%ld != 0 || dqp->dq_flags: 0x%x != 0 (%s)",
235 dqp->dq_cnt, dqp->dq_flags, qip->i_fs->fs_fsmnt);
242 dqremfree(dqp);
244 remque(dqp);
245 dqp->dq_cnt = 1;
246 dqp->dq_uid = uid;
247 dqp->dq_ufsvfsp = ufsvfsp;
248 dqp->dq_mof = UFS_HOLE;
249 mutex_enter(&dqp->dq_lock);
250 insque(dqp, dhp);
265 error = ufs_rdwri(UIO_READ, FREAD, qip, (caddr_t)&dqp->dq_dqb,
275 dqp->dq_mof = ldbtob(bn) +
278 dqp->dq_mof = UFS_HOLE;
287 dqp->dq_flags = DQ_ERROR;
290 * dq_cachelock. If another thread finds dqp before
294 mutex_exit(&dqp->dq_lock);
296 mutex_enter(&dqp->dq_lock);
297 remque(dqp);
298 mutex_exit(&dqp->dq_lock);
305 dqp->dq_cnt = 0;
306 dqp->dq_ufsvfsp = NULL;
307 dqp->dq_forw = dqp;
308 dqp->dq_back = dqp;
309 dqp->dq_mof = UFS_HOLE;
310 dqp->dq_flags = 0;
311 dqinsheadfree(dqp);
316 bzero(&dqp->dq_dqb, sizeof (struct dqblk));
317 dqp->dq_mof = UFS_HOLE;
319 mutex_exit(&dqp->dq_lock);
320 *dqpp = dqp;
328 dqput(dqp)
329 register struct dquot *dqp;
332 ASSERT(dqp->dq_ufsvfsp == NULL ||
333 RW_LOCK_HELD(&dqp->dq_ufsvfsp->vfs_dqrwlock));
334 ASSERT(MUTEX_HELD(&dqp->dq_lock));
335 if (dqp->dq_cnt == 0) {
337 dqp->dq_ufsvfsp && dqp->dq_ufsvfsp->vfs_root?
338 dqp->dq_ufsvfsp->vfs_root: NULL,
339 "dqput: dqp->dq_cnt == 0");
342 if (--dqp->dq_cnt == 0) {
343 if (dqp->dq_flags & DQ_MOD)
344 dqupdate(dqp);
350 dqp->dq_flags = 0;
351 if (dqp->dq_ufsvfsp == NULL ||
352 dqp->dq_ufsvfsp->vfs_qflags == 0) {
354 dqinval(dqp);
356 dqinstailfree(dqp);
364 dqupdate(dqp)
365 register struct dquot *dqp;
373 ASSERT(MUTEX_HELD(&dqp->dq_lock));
375 if (!dqp->dq_ufsvfsp) {
379 vfs_root = dqp->dq_ufsvfsp->vfs_root;
391 qip = dqp->dq_ufsvfsp->vfs_qinod;
402 if (ufsvfsp != dqp->dq_ufsvfsp) {
404 "dqupdate: vfs_qinod->i_ufsvfs != dqp->dq_ufsvfsp");
407 if (!(dqp->dq_flags & DQ_MOD)) {
409 "dqupdate: !(dqp->dq_flags & DQ_MOD)");
419 TRANS_DELTA(ufsvfsp, dqp->dq_mof, sizeof (struct dqblk),
421 TRANS_LOG(ufsvfsp, (caddr_t)&dqp->dq_dqb, dqp->dq_mof,
433 if (dqoff(dqp->dq_uid) >= 0) {
435 (caddr_t)&dqp->dq_dqb,
437 dqoff(dqp->dq_uid), UIO_SYSSPACE,
443 dqp->dq_flags &= ~DQ_MOD;
461 dqinval(dqp)
462 register struct dquot *dqp;
464 ASSERT(MUTEX_HELD(&dqp->dq_lock));
465 ASSERT(dqp->dq_cnt == 0);
466 ASSERT(dqp->dq_flags == 0);
467 ASSERT(dqp->dq_freef == NULL && dqp->dq_freeb == NULL);
468 ASSERT(dqp->dq_ufsvfsp &&
469 (dqp->dq_ufsvfsp->vfs_qflags & MQ_ENABLED) == 0);
477 dqp->dq_ufsvfsp = NULL;
478 mutex_exit(&dqp->dq_lock);
480 mutex_enter(&dqp->dq_lock);
486 ASSERT(dqp->dq_cnt == 0);
487 ASSERT(dqp->dq_flags == 0);
488 ASSERT(dqp->dq_freef == NULL && dqp->dq_freeb == NULL);
489 ASSERT(dqp->dq_ufsvfsp == NULL);
495 remque(dqp);
497 dqp->dq_forw = dqp;
498 dqp->dq_back = dqp;
499 dqinsheadfree(dqp);
509 register struct dquot *dqp;
531 for (dqp = dquot; dqp < dquotNDQUOT; dqp++) {
544 if (!mutex_tryenter(&dqp->dq_lock)) {
565 if (dqp->dq_ufsvfsp == ufsvfsp) {
566 ASSERT(dqp->dq_cnt == 0 || (dqp->dq_cnt == 1 &&
567 (dqp->dq_flags & DQ_TRANS)));
570 if (dqp->dq_cnt == 1 && (dqp->dq_flags & DQ_TRANS)) {
571 mutex_exit(&dqp->dq_lock);
575 ASSERT(dqp->dq_cnt == 0);
576 ASSERT(dqp->dq_freef && dqp->dq_freeb);
584 dqremfree(dqp);
586 dqinval(dqp);
589 mutex_exit(&dqp->dq_lock);