1. 19 Apr, 2008 2 commits
    • Trond Myklebust's avatar
      SUNRPC: Fix up xprt_write_space() · b6ddf64f
      Trond Myklebust authored
      The rest of the networking layer uses SOCK_ASYNC_NOSPACE to signal whether
      or not we have someone waiting for buffer memory. Convert the SUNRPC layer
      to use the same idiom.
      Remove the unlikely()s in xs_udp_write_space and xs_tcp_write_space. In
      fact, the most common case will be that there is nobody waiting for buffer
      space.
      
      SOCK_NOSPACE is there to tell the TCP layer whether or not the cwnd was
      limited by the application window. Ensure that we follow the same idiom as
      the rest of the networking layer here too.
      
      Finally, ensure that we clear SOCK_ASYNC_NOSPACE once we wake up, so that
      write_space() doesn't keep waking things up on xprt->pending.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      b6ddf64f
    • Trond Myklebust's avatar
      SUNRPC: Fix a bug in call_decode() · 24b74bf0
      Trond Myklebust authored
      call_verify() can, under certain circumstances, free the RPC slot. In that
      case, our cached pointer 'req = task->tk_rqstp' is invalid. Bug was
      introduced in commit 220bcc2a (SUNRPC:
      Don't call xprt_release in call refresh).
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      24b74bf0
  2. 19 Mar, 2008 38 commits