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;
|
||||
break;
|
||||
}
|
||||
/* we're done if id overflows back to zero */
|
||||
if (!next_index)
|
||||
break;
|
||||
}
|
||||
|
||||
if (skipped) {
|
||||
|
|
Loading…
Reference in New Issue