lkml.org 
[lkml]   [2015]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.2 092/134] SUNRPC: Fix a thinko in xs_connect()
    Date
    4.2-stable review patch.  If anyone has any objections, please let me know.

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

    From: Trond Myklebust <trond.myklebust@primarydata.com>

    commit 99b1a4c32ad22024ac6198a4337aaec5ea23168f upstream.

    It is rather pointless to test the value of transport->inet after
    calling xs_reset_transport(), since it will always be zero, and
    so we will never see any exponential back off behaviour.
    Also don't force early connections for SOFTCONN tasks. If the server
    disconnects us, we should respect the exponential backoff.

    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/sunrpc/xprtsock.c | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    --- a/net/sunrpc/xprtsock.c
    +++ b/net/sunrpc/xprtsock.c
    @@ -2279,13 +2279,14 @@ static void xs_connect(struct rpc_xprt *

    WARN_ON_ONCE(!xprt_lock_connect(xprt, task, transport));

    - /* Start by resetting any existing state */
    - xs_reset_transport(transport);
    -
    - if (transport->sock != NULL && !RPC_IS_SOFTCONN(task)) {
    + if (transport->sock != NULL) {
    dprintk("RPC: xs_connect delayed xprt %p for %lu "
    "seconds\n",
    xprt, xprt->reestablish_timeout / HZ);
    +
    + /* Start by resetting any existing state */
    + xs_reset_transport(transport);
    +
    queue_delayed_work(rpciod_workqueue,
    &transport->connect_worker,
    xprt->reestablish_timeout);



    \
     
     \ /
      Last update: 2015-09-26 23:21    [W:4.068 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site