When tune2fs is enabling quota feature, it looks for old-style quota files and tries to transfer limits stored in these files into newly created hidded quota files. However the code doing the transfer setups the quota scan wrongly and instead of transferring limits we transfer usage. So not only quota limits are lost (at least they can still be recovered from the old quota files) but also usage information may be wrong if the accounting in e2fsprogs does not exactly match the accounting in quota-tools (which is actually the case). Fix the setup of the quota scan. Signed-off-by: Jan Kara <jack@xxxxxxx> --- lib/support/mkquota.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/support/mkquota.c b/lib/support/mkquota.c index fbc3833aee98..34ab632fb81c 100644 --- a/lib/support/mkquota.c +++ b/lib/support/mkquota.c @@ -569,14 +569,14 @@ static int scan_dquots_callback(struct dquot *dquot, void *cb_data) */ static errcode_t quota_read_all_dquots(struct quota_handle *qh, quota_ctx_t qctx, - int update_limits EXT2FS_ATTR((unused))) + int update_limits) { struct scan_dquots_data scan_data; 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 = update_limits; + scan_data.update_usage = 0; return qh->qh_ops->scan_dquots(qh, scan_dquots_callback, &scan_data); } -- 2.26.2