static void write_dquots(dict_t *dict, struct quota_handle *qh) { dnode_t *n; struct dquot *dq; for (n = dict_first(dict); n; n = dict_next(dict, n)) { dq = dnode_get(n); if (dq) { dq->dq_h = qh; update_grace_times(dq); qh->qh_ops->commit_dquot(dq); } } }
/* Merge changes on one dev to proper structure in the list */ static void merge_limits_to_list(struct dquot *qlist, char *dev, u_int64_t blocks, u_int64_t bsoft, u_int64_t bhard, u_int64_t inodes, u_int64_t isoft, u_int64_t ihard) { struct dquot *q; for (q = qlist; q; q = q->dq_next) { if (!devcmp_handle(dev, q->dq_h)) continue; q->dq_dqb.dqb_bsoftlimit = bsoft; q->dq_dqb.dqb_bhardlimit = bhard; q->dq_dqb.dqb_isoftlimit = isoft; q->dq_dqb.dqb_ihardlimit = ihard; q->dq_flags |= DQ_FOUND; update_grace_times(q); if (blocks != toqb(q->dq_dqb.dqb_curspace)) errstr(_("WARNING - %s: cannot change current block allocation\n"), q->dq_h->qh_quotadev); if (inodes != q->dq_dqb.dqb_curinodes) errstr(_("WARNING - %s: cannot change current inode allocation\n"), q->dq_h->qh_quotadev); } }