lkml.org 
[lkml]   [2014]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 070/254] lockd: Try to reconnect if statd has moved
    Date
    3.16.7-ckt2 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Benjamin Coddington <bcodding@redhat.com>

    commit 173b3afceebe76fa2205b2c8808682d5b541fe3c upstream.

    If rpc.statd is restarted, upcalls to monitor hosts can fail with
    ECONNREFUSED. In that case force a lookup of statd's new port and retry the
    upcall.

    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    fs/lockd/mon.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c
    index 1812f026960c..6ae664b489af 100644
    --- a/fs/lockd/mon.c
    +++ b/fs/lockd/mon.c
    @@ -159,6 +159,12 @@ static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res,

    msg.rpc_proc = &clnt->cl_procinfo[proc];
    status = rpc_call_sync(clnt, &msg, RPC_TASK_SOFTCONN);
    + if (status == -ECONNREFUSED) {
    + dprintk("lockd: NSM upcall RPC failed, status=%d, forcing rebind\n",
    + status);
    + rpc_force_rebind(clnt);
    + status = rpc_call_sync(clnt, &msg, RPC_TASK_SOFTCONN);
    + }
    if (status < 0)
    dprintk("lockd: NSM upcall RPC failed, status=%d\n",
    status);
    --
    2.1.0


    \
     
     \ /
      Last update: 2014-11-25 13:21    [W:5.553 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site