• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/fs/xfs/quota/

Lines Matching defs:dqp

90 	xfs_dquot_t	*dqp;
93 brandnewdquot = xfs_qm_dqalloc_incore(&dqp);
94 dqp->dq_flags = type;
95 dqp->q_core.d_id = cpu_to_be32(id);
96 dqp->q_mount = mp;
102 dqp->dq_flnext = dqp->dq_flprev = dqp;
103 mutex_init(&dqp->q_qlock);
104 initnsema(&dqp->q_flock, 1, "fdq");
105 sv_init(&dqp->q_pinwait, SV_DEFAULT, "pdq");
108 dqp->q_trace = ktrace_alloc(DQUOT_TRACE_SIZE, KM_SLEEP);
109 xfs_dqtrace_entry(dqp, "DQINIT");
116 dqp->q_nrefs = 0;
117 dqp->q_blkno = 0;
118 dqp->MPL_NEXT = dqp->HL_NEXT = NULL;
119 dqp->HL_PREVP = dqp->MPL_PREVP = NULL;
120 dqp->q_bufoffset = 0;
121 dqp->q_fileoffset = 0;
122 dqp->q_transp = NULL;
123 dqp->q_gdquot = NULL;
124 dqp->q_res_bcount = 0;
125 dqp->q_res_icount = 0;
126 dqp->q_res_rtbcount = 0;
127 dqp->q_pincount = 0;
128 dqp->q_hash = NULL;
129 ASSERT(dqp->dq_flnext == dqp->dq_flprev);
132 ASSERT(dqp->q_trace);
133 xfs_dqtrace_entry(dqp, "DQRECLAIMED_INIT");
140 return (dqp);
148 xfs_dquot_t *dqp)
150 ASSERT(! XFS_DQ_IS_ON_FREELIST(dqp));
152 mutex_destroy(&dqp->q_qlock);
153 freesema(&dqp->q_flock);
154 sv_destroy(&dqp->q_pinwait);
157 if (dqp->q_trace)
158 ktrace_free(dqp->q_trace);
159 dqp->q_trace = NULL;
161 kmem_zone_free(xfs_Gqm->qm_dqzone, dqp);
191 xfs_dquot_t *dqp,
199 ASSERT(dqp->q_trace);
204 ktrace_enter(dqp->q_trace,
207 (void *)(__psint_t)dqp->q_nrefs,
208 (void *)(__psint_t)dqp->dq_flags,
209 (void *)(__psint_t)dqp->q_res_bcount,
210 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_bcount),
211 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_icount),
212 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_blk_hardlimit),
213 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_blk_softlimit),
214 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_ino_hardlimit),
215 (void *)(__psint_t)be64_to_cpu(dqp->q_core.d_ino_softlimit),
216 (void *)(__psint_t)be32_to_cpu(dqp->q_core.d_id),
400 xfs_dquot_t *dqp,
413 xfs_dqtrace_entry(dqp, "DQALLOC");
424 if (XFS_IS_THIS_QUOTA_OFF(dqp)) {
454 dqp->q_blkno = XFS_FSB_TO_DADDR(mp, map.br_startblock);
458 dqp->q_blkno,
467 xfs_qm_init_dquot_blk(tp, mp, be32_to_cpu(dqp->q_core.d_id),
468 dqp->dq_flags & XFS_DQ_ALLTYPES, bp);
515 xfs_dquot_t *dqp,
530 mp = dqp->q_mount;
531 id = be32_to_cpu(dqp->q_core.d_id);
538 if (dqp->q_blkno == (xfs_daddr_t) 0) {
540 dqp->q_fileoffset = (xfs_fileoff_t)id / XFS_QM_DQPERBLK(mp);
542 quotip = XFS_DQ_TO_QIP(dqp);
548 if (XFS_IS_THIS_QUOTA_OFF(dqp)) {
555 error = xfs_bmapi(NULL, quotip, dqp->q_fileoffset,
569 dqp->q_bufoffset = (id % XFS_QM_DQPERBLK(mp)) *
579 if ((error = xfs_qm_dqalloc(tpp, mp, dqp, quotip,
580 dqp->q_fileoffset, &bp)))
589 dqp->q_blkno = XFS_FSB_TO_DADDR(mp, map.br_startblock);
592 ASSERT(dqp->q_blkno != DELAYSTARTBLOCK);
593 ASSERT(dqp->q_blkno != HOLESTARTBLOCK);
600 xfs_dqtrace_entry(dqp, "DQTOBP READBUF");
602 dqp->q_blkno,
616 ddq = (xfs_disk_dquot_t *)((char *)XFS_BUF_PTR(bp) + dqp->q_bufoffset);
621 if (xfs_qm_dqcheck(ddq, id, dqp->dq_flags & XFS_DQ_ALLTYPES,
648 xfs_dquot_t *dqp, /* dquot to get filled in */
660 * dqp already knows its own type (GROUP/USER).
662 xfs_dqtrace_entry(dqp, "DQREAD");
663 if ((error = xfs_qm_dqtobp(tpp, dqp, &ddqp, &bp, flags))) {
669 memcpy(&dqp->q_core, ddqp, sizeof(xfs_disk_dquot_t));
670 ASSERT(be32_to_cpu(dqp->q_core.d_id) == id);
671 xfs_qm_dquot_logitem_init(dqp);
677 dqp->q_res_bcount = be64_to_cpu(ddqp->d_bcount);
678 dqp->q_res_icount = be64_to_cpu(ddqp->d_icount);
679 dqp->q_res_rtbcount = be64_to_cpu(ddqp->d_rtbcount);
718 xfs_dquot_t *dqp;
723 dqp = xfs_qm_dqinit(mp, id, type);
745 if ((error = xfs_qm_dqread(&tp, id, dqp, flags))) {
751 xfs_dqtrace_entry(dqp, "DQREAD FAIL");
760 *O_dqpp = dqp;
768 xfs_qm_dqdestroy(dqp);
787 xfs_dquot_t *dqp;
798 for (dqp = qh->qh_next; dqp != NULL; dqp = dqp->HL_NEXT) {
804 if (be32_to_cpu(dqp->q_core.d_id) == id && dqp->q_mount == mp) {
805 xfs_dqtrace_entry(dqp, "DQFOUND BY LOOKUP");
809 ASSERT(dqp->MPL_PREVP != NULL);
811 xfs_dqlock(dqp);
812 if (dqp->q_nrefs == 0) {
813 ASSERT (XFS_DQ_IS_ON_FREELIST(dqp));
815 xfs_dqtrace_entry(dqp, "DQLOOKUP: WANT");
822 dqp->dq_flags |= XFS_DQ_WANT;
823 xfs_dqunlock(dqp);
825 xfs_dqlock(dqp);
826 dqp->dq_flags &= ~(XFS_DQ_WANT);
835 ASSERT(be32_to_cpu(dqp->q_core.d_id) == id);
838 if (dqp->q_nrefs != 0) {
845 xfs_dqtrace_entry(dqp,
847 XQM_FREELIST_REMOVE(dqp);
857 XFS_DQHOLD(dqp);
865 if (dqp->HL_PREVP != &qh->qh_next) {
866 xfs_dqtrace_entry(dqp,
868 if ((d = dqp->HL_NEXT))
869 d->HL_PREVP = dqp->HL_PREVP;
870 *(dqp->HL_PREVP) = d;
872 d->HL_PREVP = &dqp->HL_NEXT;
873 dqp->HL_NEXT = d;
874 dqp->HL_PREVP = &qh->qh_next;
875 qh->qh_next = dqp;
877 xfs_dqtrace_entry(dqp, "LOOKUP END");
878 *O_dqpp = dqp;
906 xfs_dquot_t *dqp;
989 &dqp))) {
1016 xfs_qm_dqdestroy(dqp);
1025 xfs_qm_dqdestroy(dqp);
1026 dqp = ip->i_udquot;
1027 xfs_dqlock(dqp);
1032 xfs_qm_dqdestroy(dqp);
1033 dqp = ip->i_gdquot;
1034 xfs_dqlock(dqp);
1050 * lock order between the two dquots here since dqp isn't
1060 xfs_qm_dqdestroy(dqp);
1071 dqp->q_hash = h;
1072 XQM_HASHLIST_INSERT(h, dqp);
1083 xfs_dqlock(dqp);
1084 dqp->q_nrefs = 1;
1086 XQM_MPLIST_INSERT(&(XFS_QI_MPL_LIST(mp)), dqp);
1092 xfs_dqtrace_entry(dqp, "DQGET DONE");
1093 *O_dqpp = dqp;
1106 xfs_dquot_t *dqp)
1110 ASSERT(dqp->q_nrefs > 0);
1111 ASSERT(XFS_DQ_IS_LOCKED(dqp));
1112 xfs_dqtrace_entry(dqp, "DQPUT");
1114 if (dqp->q_nrefs != 1) {
1115 dqp->q_nrefs--;
1116 xfs_dqunlock(dqp);
1125 xfs_dqtrace_entry(dqp, "DQPUT: FLLOCK-WAIT");
1126 xfs_dqunlock(dqp);
1128 xfs_dqlock(dqp);
1135 if (--dqp->q_nrefs == 0) {
1136 xfs_dqtrace_entry(dqp, "DQPUT: ON FREELIST");
1140 XQM_FREELIST_INSERT(&(xfs_Gqm->qm_dqfreelist), dqp);
1148 if ((gdqp = dqp->q_gdquot)) {
1153 dqp->q_gdquot = NULL;
1160 xfs_dqunlock(dqp);
1168 dqp = gdqp;
1179 xfs_dquot_t *dqp)
1181 ASSERT(dqp);
1182 xfs_dqtrace_entry(dqp, "DQRELE");
1184 xfs_dqlock(dqp);
1191 xfs_qm_dqput(dqp);
1205 xfs_dquot_t *dqp,
1214 ASSERT(XFS_DQ_IS_LOCKED(dqp));
1215 ASSERT(XFS_DQ_IS_FLUSH_LOCKED(dqp));
1216 xfs_dqtrace_entry(dqp, "DQFLUSH");
1221 if (!XFS_DQ_IS_DIRTY(dqp)) {
1222 xfs_dqfunlock(dqp);
1229 xfs_qm_dqunpin_wait(dqp);
1236 if (XFS_FORCED_SHUTDOWN(dqp->q_mount)) {
1237 dqp->dq_flags &= ~(XFS_DQ_DIRTY);
1238 xfs_dqfunlock(dqp);
1247 if ((error = xfs_qm_dqtobp(NULL, dqp, &ddqp, &bp, XFS_QMOPT_DOWARN))) {
1248 xfs_dqtrace_entry(dqp, "DQTOBP FAIL");
1253 xfs_dqfunlock(dqp);
1257 if (xfs_qm_dqcheck(&dqp->q_core, be32_to_cpu(ddqp->d_id),
1259 xfs_force_shutdown(dqp->q_mount, SHUTDOWN_CORRUPT_INCORE);
1264 memcpy(ddqp, &(dqp->q_core), sizeof(xfs_disk_dquot_t));
1269 dqp->dq_flags &= ~(XFS_DQ_DIRTY);
1270 mp = dqp->q_mount;
1274 dqp->q_logitem.qli_flush_lsn = dqp->q_logitem.qli_item.li_lsn;
1282 xfs_qm_dqflush_done, &(dqp->q_logitem.qli_item));
1288 xfs_dqtrace_entry(dqp, "DQFLUSH LOG FORCE");
1299 xfs_dqtrace_entry(dqp, "DQFLUSH END");
1301 * dqp is still locked, but caller is free to unlock it now.
1320 xfs_dquot_t *dqp;
1323 dqp = qip->qli_dquot;
1336 AIL_LOCK(dqp->q_mount, s);
1341 xfs_trans_delete_ail(dqp->q_mount,
1344 AIL_UNLOCK(dqp->q_mount, s);
1350 xfs_dqfunlock(dqp);
1356 xfs_dquot_t *dqp)
1360 locked = cpsema(&((dqp)->q_flock));
1363 (dqp)->dq_flags |= XFS_DQ_FLOCKED;
1370 xfs_dquot_t *dqp)
1372 return (mutex_trylock(&((dqp)->q_qlock)));
1377 xfs_dquot_t *dqp)
1379 mutex_lock(&(dqp->q_qlock));
1384 xfs_dquot_t *dqp)
1386 mutex_unlock(&(dqp->q_qlock));
1387 if (dqp->q_logitem.qli_dquot == dqp) {
1388 /* Once was dqp->q_mount, but might just have been cleared */
1389 xfs_trans_unlocked_item(dqp->q_logitem.qli_item.li_mountp,
1390 (xfs_log_item_t*)&(dqp->q_logitem));
1397 xfs_dquot_t *dqp)
1399 mutex_unlock(&(dqp->q_qlock));
1439 xfs_dquot_t *dqp,
1445 mp = dqp->q_mount;
1448 ASSERT(XFS_DQ_IS_HASH_LOCKED(dqp->q_hash));
1450 xfs_dqlock(dqp);
1459 if (dqp->q_nrefs != 0) {
1460 xfs_dqunlock(dqp);
1461 XFS_DQ_HASH_UNLOCK(dqp->q_hash);
1465 ASSERT(XFS_DQ_IS_ON_FREELIST(dqp));
1475 if (! xfs_qm_dqflock_nowait(dqp)) {
1480 xfs_qm_dqflock_pushbuf_wait(dqp);
1488 if (XFS_DQ_IS_DIRTY(dqp)) {
1489 xfs_dqtrace_entry(dqp, "DQPURGE ->DQFLUSH: DQDIRTY");
1499 (void) xfs_qm_dqflush(dqp, XFS_QMOPT_SYNC);
1500 xfs_dqflock(dqp);
1502 ASSERT(dqp->q_pincount == 0);
1504 !(dqp->q_logitem.qli_item.li_flags & XFS_LI_IN_AIL));
1506 thishash = dqp->q_hash;
1507 XQM_HASHLIST_REMOVE(thishash, dqp);
1508 XQM_MPLIST_REMOVE(&(XFS_QI_MPL_LIST(mp)), dqp);
1509 ASSERT(XFS_DQ_IS_ON_FREELIST(dqp));
1511 dqp->q_mount = NULL;
1512 dqp->q_hash = NULL;
1513 dqp->dq_flags = XFS_DQ_INACTIVE;
1514 memset(&dqp->q_core, 0, sizeof(dqp->q_core));
1515 xfs_dqfunlock(dqp);
1516 xfs_dqunlock(dqp);
1524 xfs_qm_dqprint(xfs_dquot_t *dqp)
1528 (int)be32_to_cpu(dqp->q_core.d_id));
1529 cmn_err(CE_DEBUG, "---- type = %s", DQFLAGTO_TYPESTR(dqp));
1530 cmn_err(CE_DEBUG, "---- fs = 0x%p", dqp->q_mount);
1531 cmn_err(CE_DEBUG, "---- blkno = 0x%x", (int) dqp->q_blkno);
1532 cmn_err(CE_DEBUG, "---- boffset = 0x%x", (int) dqp->q_bufoffset);
1534 be64_to_cpu(dqp->q_core.d_blk_hardlimit),
1535 (int)be64_to_cpu(dqp->q_core.d_blk_hardlimit));
1537 be64_to_cpu(dqp->q_core.d_blk_softlimit),
1538 (int)be64_to_cpu(dqp->q_core.d_blk_softlimit));
1540 be64_to_cpu(dqp->q_core.d_ino_hardlimit),
1541 (int)be64_to_cpu(dqp->q_core.d_ino_hardlimit));
1543 be64_to_cpu(dqp->q_core.d_ino_softlimit),
1544 (int)be64_to_cpu(dqp->q_core.d_ino_softlimit));
1546 be64_to_cpu(dqp->q_core.d_bcount),
1547 (int)be64_to_cpu(dqp->q_core.d_bcount));
1549 be64_to_cpu(dqp->q_core.d_icount),
1550 (int)be64_to_cpu(dqp->q_core.d_icount));
1552 (int)be32_to_cpu(dqp->q_core.d_btimer));
1554 (int)be32_to_cpu(dqp->q_core.d_itimer));
1565 xfs_dquot_t *dqp)
1575 bp = xfs_incore(dqp->q_mount->m_ddev_targp, dqp->q_blkno,
1576 XFS_QI_DQCHUNKLEN(dqp->q_mount),
1581 xfs_log_force(dqp->q_mount,
1585 xfs_bawrite(dqp->q_mount, bp);
1590 xfs_dqflock(dqp);