xfs: fix quotacheck dquot id overflow infinite loop
If a dquot has an id of U32_MAX, the next lookup index increment overflows the uint32_t back to 0. This starts the lookup sequence over from the beginning, repeats indefinitely and results in a livelock. Update xfs_qm_dquot_walk() to explicitly check for the lookup overflow and exit the loop. Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
10479e2dea
commit
cfaf2d0343
|
@ -111,6 +111,9 @@ xfs_qm_dquot_walk(
|
||||||
skipped = 0;
|
skipped = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
/* we're done if id overflows back to zero */
|
||||||
|
if (!next_index)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skipped) {
|
if (skipped) {
|
||||||
|
|
Loading…
Reference in New Issue