lkml.org 
[lkml]   [2017]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 44/78] xfs: fix quotacheck dquot id overflow infinite loop
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------


    From: Brian Foster <bfoster@redhat.com>

    commit cfaf2d034360166e569a4929dd83ae9698bed856 upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/xfs/xfs_qm.c | 3 +++
    1 file changed, 3 insertions(+)

    --- 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) {

    \
     
     \ /
      Last update: 2017-09-18 11:31    [W:2.553 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site