From: Brian Foster Date: Mon, 24 Jul 2017 15:33:25 +0000 (-0700) Subject: xfs: fix quotacheck dquot id overflow infinite loop X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=cfaf2d034360166e569a4929dd83ae9698bed856;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git 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 Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong --- diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c index 6ce948c436d5..15751dc2a27d 100644 --- a/fs/xfs/xfs_qm.c +++ b/fs/xfs/xfs_qm.c @@ -111,6 +111,9 @@ restart: skipped = 0; break; } + /* we're done if id overflows back to zero */ + if (!next_index) + break; } if (skipped) {