lkml.org 
[lkml]   [2017]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 003/104] GFS2: Fix reference to ERR_PTR in gfs2_glock_iter_next
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

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

    From: Dan Carpenter <dan.carpenter@oracle.com>


    [ Upstream commit 14d37564fa3dc4e5d4c6828afcd26ac14e6796c5 ]

    This patch fixes a place where function gfs2_glock_iter_next can
    reference an invalid error pointer.

    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/gfs2/glock.c | 12 +++++++-----
    1 file changed, 7 insertions(+), 5 deletions(-)

    --- a/fs/gfs2/glock.c
    +++ b/fs/gfs2/glock.c
    @@ -1820,16 +1820,18 @@ void gfs2_glock_exit(void)

    static void gfs2_glock_iter_next(struct gfs2_glock_iter *gi)
    {
    - do {
    - gi->gl = rhashtable_walk_next(&gi->hti);
    + while ((gi->gl = rhashtable_walk_next(&gi->hti))) {
    if (IS_ERR(gi->gl)) {
    if (PTR_ERR(gi->gl) == -EAGAIN)
    continue;
    gi->gl = NULL;
    + return;
    }
    - /* Skip entries for other sb and dead entries */
    - } while ((gi->gl) && ((gi->sdp != gi->gl->gl_name.ln_sbd) ||
    - __lockref_is_dead(&gi->gl->gl_lockref)));
    + /* Skip entries for other sb and dead entries */
    + if (gi->sdp == gi->gl->gl_name.ln_sbd &&
    + !__lockref_is_dead(&gi->gl->gl_lockref))
    + return;
    + }
    }

    static void *gfs2_glock_seq_start(struct seq_file *seq, loff_t *pos)

    \
     
     \ /
      Last update: 2017-10-06 11:40    [W:4.064 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site