From: Jan Kara Date: Mon, 23 Aug 2021 15:41:23 +0000 (+0200) Subject: quota: Rename quota_update_limits() to quota_read_all_dquots() X-Git-Tag: v1.46.5~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c87a5c54cc7a78b17dfe4a392cb551d283c353b;p=thirdparty%2Fe2fsprogs.git quota: Rename quota_update_limits() to quota_read_all_dquots() quota_update_limits() is a misnomer because what it actually does is that it updates 'usage' counters and leaves 'limit' counters intact. Rename quota_update_limits() to quota_read_all_dquots() and while changing prototype also add a flags argument so that callers can control which quota information is actually updated from the disk. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o --- diff --git a/e2fsck/super.c b/e2fsck/super.c index 31e2ffb23..434261319 100644 --- a/e2fsck/super.c +++ b/e2fsck/super.c @@ -281,7 +281,8 @@ static errcode_t e2fsck_read_all_quotas(e2fsck_t ctx) if (qf_ino == 0) continue; - retval = quota_update_limits(ctx->qctx, qf_ino, qtype); + retval = quota_read_all_dquots(ctx->qctx, qf_ino, qtype, + QREAD_USAGE); if (retval) break; } diff --git a/lib/support/mkquota.c b/lib/support/mkquota.c index 7500cb2bd..f1f2e35c2 100644 --- a/lib/support/mkquota.c +++ b/lib/support/mkquota.c @@ -592,10 +592,11 @@ static errcode_t quota_write_all_dquots(struct quota_handle *qh, #endif /* - * Updates the in-memory quota limits from the given quota inode. + * Read quotas from disk and updates the in-memory information determined by + * 'flags' from the on-disk data. */ -errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, - enum quota_type qtype) +errcode_t quota_read_all_dquots(quota_ctx_t qctx, ext2_ino_t qf_ino, + enum quota_type qtype, unsigned int flags) { struct scan_dquots_data scan_data; struct quota_handle *qh; @@ -618,8 +619,8 @@ errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, scan_data.quota_dict = qctx->quota_dict[qh->qh_type]; scan_data.check_consistency = 0; - scan_data.update_limits = 0; - scan_data.update_usage = 1; + scan_data.update_limits = !!(flags & QREAD_LIMITS); + scan_data.update_usage = !!(flags & QREAD_USAGE); qh->qh_ops->scan_dquots(qh, scan_dquots_callback, &scan_data); err = quota_file_close(qctx, qh); diff --git a/lib/support/quotaio.h b/lib/support/quotaio.h index 606897000..84fac35dd 100644 --- a/lib/support/quotaio.h +++ b/lib/support/quotaio.h @@ -224,8 +224,11 @@ void quota_data_add(quota_ctx_t qctx, struct ext2_inode_large *inode, void quota_data_sub(quota_ctx_t qctx, struct ext2_inode_large *inode, ext2_ino_t ino, qsize_t space); errcode_t quota_write_inode(quota_ctx_t qctx, enum quota_type qtype); -errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, - enum quota_type type); +/* Flags for quota_read_all_dquots() */ +#define QREAD_USAGE 0x01 +#define QREAD_LIMITS 0x02 +errcode_t quota_read_all_dquots(quota_ctx_t qctx, ext2_ino_t qf_ino, + enum quota_type type, unsigned int flags); errcode_t quota_compute_usage(quota_ctx_t qctx); void quota_release_context(quota_ctx_t *qctx); errcode_t quota_remove_inode(ext2_filsys fs, enum quota_type qtype); diff --git a/misc/tune2fs.c b/misc/tune2fs.c index 4200104ee..f459d5d5f 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -1677,8 +1677,9 @@ static int handle_quota_options(ext2_filsys fs) if (quota_enable[qtype] == QOPT_ENABLE && *quota_sb_inump(fs->super, qtype) == 0) { if ((qf_ino = quota_file_exists(fs, qtype)) > 0) { - retval = quota_update_limits(qctx, qf_ino, - qtype); + retval = quota_read_all_dquots(qctx, qf_ino, + qtype, + QREAD_USAGE); if (retval) { com_err(program_name, retval, _("while updating quota limits (%d)"),