lkml.org 
[lkml]   [2015]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19 037/101] nfsd: return correct lockowner when there is a race on hash insert
    Date
    3.19-stable review patch.  If anyone has any objections, please let me know.

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

    From: "J. Bruce Fields" <bfields@redhat.com>

    commit 340f0ba1c6c8412aa35fd6476044836b84361ea6 upstream.

    alloc_init_lock_stateowner can return an already freed entry if there is
    a race to put openowners in the hashtable.

    Noticed by inspection after Jeff Layton fixed the same bug for open
    owners. Depending on client behavior, this one may be trickier to
    trigger in practice.

    Fixes: c58c6610ec24 "nfsd: Protect adding/removing lock owners using client_lock"
    Cc: Trond Myklebust <trond.myklebust@primarydata.com>
    Acked-by: Jeff Layton <jeff.layton@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/nfsd/nfs4state.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/fs/nfsd/nfs4state.c
    +++ b/fs/nfsd/nfs4state.c
    @@ -5065,7 +5065,7 @@ alloc_init_lock_stateowner(unsigned int
    } else
    nfs4_free_lockowner(&lo->lo_owner);
    spin_unlock(&clp->cl_lock);
    - return lo;
    + return ret;
    }

    static void



    \
     
     \ /
      Last update: 2015-04-17 16:21    [W:2.219 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site