On Mon, Aug 07, 2023 at 07:40:30PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > For some unknown reason, when I converted the incore dquot objects to > store the dquot id in host endian order, I removed the increment here. > This causes the scan to stop after retrieving the root dquot, which > severely limits the usefulness of the quota scrubber. Fix the lost > increment, though it won't fix the problem that the quota iterator code > filters out zeroed dquot records. > > Fixes: c51df7334167e ("xfs: stop using q_core.d_id in the quota code") > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > --- > fs/xfs/xfs_dquot.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c > index 17c64b7b91d02..9e6dc5972ec68 100644 > --- a/fs/xfs/xfs_dquot.c > +++ b/fs/xfs/xfs_dquot.c > @@ -1458,7 +1458,7 @@ xfs_qm_dqiterate( > return error; > > error = iter_fn(dq, type, priv); > - id = dq->q_id; > + id = dq->q_id + 1; > xfs_qm_dqput(dq); > } while (error == 0 && id != 0); I see how this happened looking at the commit mentioned, and how it would have easily been missed on review - there was a separate "id++" line after the xfs_qm_dqput() call that was removed that should have been left in place. This change obviously restores the previous behaviour. Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx