Lines Matching full:dq
58 struct xfs_dquot *dq, in xrep_quota_item_fill_bmap_hole() argument
74 error = xfs_bmapi_write(sc->tp, sc->ip, dq->q_fileoffset, in xrep_quota_item_fill_bmap_hole()
80 dq->q_blkno = XFS_FSB_TO_DADDR(mp, irec->br_startblock); in xrep_quota_item_fill_bmap_hole()
82 trace_xrep_dquot_item_fill_bmap_hole(sc->mp, dq->q_type, dq->q_id); in xrep_quota_item_fill_bmap_hole()
85 error = xfs_trans_get_buf(sc->tp, mp->m_ddev_targp, dq->q_blkno, in xrep_quota_item_fill_bmap_hole()
91 xfs_qm_init_dquot_blk(sc->tp, dq->q_id, dq->q_type, bp); in xrep_quota_item_fill_bmap_hole()
108 struct xfs_dquot *dq, in xrep_quota_item_bmap() argument
114 xfs_fileoff_t offset = dq->q_id / qi->qi_dqperchunk; in xrep_quota_item_bmap()
123 dq->q_fileoffset = offset; in xrep_quota_item_bmap()
131 error = xrep_quota_item_fill_bmap_hole(sc, dq, &irec); in xrep_quota_item_bmap()
138 } else if (dq->q_blkno != XFS_FSB_TO_DADDR(mp, irec.br_startblock)) { in xrep_quota_item_bmap()
144 dq->q_blkno = XFS_FSB_TO_DADDR(mp, irec.br_startblock); in xrep_quota_item_bmap()
172 struct xfs_dquot *dq) in xrep_quota_item() argument
190 xfs_dqunlock(dq); in xrep_quota_item()
192 xfs_dqlock(dq); in xrep_quota_item()
194 error = xrep_quota_item_bmap(sc, dq, &dirty); in xrep_quota_item()
200 if (dq->q_blk.softlimit > dq->q_blk.hardlimit) { in xrep_quota_item()
201 dq->q_blk.softlimit = dq->q_blk.hardlimit; in xrep_quota_item()
205 if (dq->q_ino.softlimit > dq->q_ino.hardlimit) { in xrep_quota_item()
206 dq->q_ino.softlimit = dq->q_ino.hardlimit; in xrep_quota_item()
210 if (dq->q_rtb.softlimit > dq->q_rtb.hardlimit) { in xrep_quota_item()
211 dq->q_rtb.softlimit = dq->q_rtb.hardlimit; in xrep_quota_item()
221 if (!xfs_has_reflink(mp) && dq->q_blk.count > mp->m_sb.sb_dblocks) { in xrep_quota_item()
222 dq->q_blk.reserved -= dq->q_blk.count; in xrep_quota_item()
223 dq->q_blk.reserved += mp->m_sb.sb_dblocks; in xrep_quota_item()
224 dq->q_blk.count = mp->m_sb.sb_dblocks; in xrep_quota_item()
229 if (dq->q_ino.count > fs_icount) { in xrep_quota_item()
230 dq->q_ino.reserved -= dq->q_ino.count; in xrep_quota_item()
231 dq->q_ino.reserved += fs_icount; in xrep_quota_item()
232 dq->q_ino.count = fs_icount; in xrep_quota_item()
236 if (!xfs_has_reflink(mp) && dq->q_rtb.count > mp->m_sb.sb_rblocks) { in xrep_quota_item()
237 dq->q_rtb.reserved -= dq->q_rtb.count; in xrep_quota_item()
238 dq->q_rtb.reserved += mp->m_sb.sb_rblocks; in xrep_quota_item()
239 dq->q_rtb.count = mp->m_sb.sb_rblocks; in xrep_quota_item()
244 xrep_quota_item_timer(sc, &dq->q_blk, &dirty); in xrep_quota_item()
245 xrep_quota_item_timer(sc, &dq->q_ino, &dirty); in xrep_quota_item()
246 xrep_quota_item_timer(sc, &dq->q_rtb, &dirty); in xrep_quota_item()
251 trace_xrep_dquot_item(sc->mp, dq->q_type, dq->q_id); in xrep_quota_item()
253 dq->q_flags |= XFS_DQFLAG_DIRTY; in xrep_quota_item()
254 xfs_trans_dqjoin(sc->tp, dq); in xrep_quota_item()
255 if (dq->q_id) { in xrep_quota_item()
256 xfs_qm_adjust_dqlimits(dq); in xrep_quota_item()
257 xfs_qm_adjust_dqtimers(dq); in xrep_quota_item()
259 xfs_trans_log_dquot(sc->tp, dq); in xrep_quota_item()
261 xfs_dqlock(dq); in xrep_quota_item()
510 struct xfs_dquot *dq; in xrep_quota_problems() local
514 while ((error = xchk_dquot_iter(&cursor, &dq)) == 1) { in xrep_quota_problems()
515 error = xrep_quota_item(&rqi, dq); in xrep_quota_problems()
516 xfs_qm_dqput(dq); in xrep_quota_problems()