• Jeff Layton's avatar
    NLM: don't reattempt GRANT_MSG when there is already an RPC in flight · 9706501e
    Jeff Layton authored
    With the current scheme in nlmsvc_grant_blocked, we can end up with more
    than one GRANT_MSG callback for a block in flight. Right now, we requeue
    the block unconditionally so that a GRANT_MSG callback is done again in
    30s. If the client is unresponsive, it can take more than 30s for the
    call already in flight to time out.
    
    There's no benefit to having more than one GRANT_MSG RPC queued up at a
    time, so put it on the list with a timeout of NLM_NEVER before doing the
    RPC call. If the RPC call submission fails, we requeue it with a short
    timeout. If it works, then nlmsvc_grant_callback will end up requeueing
    it with a shorter timeout after it completes.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    9706501e
svclock.c 23.9 KB