1. 01 Mar, 2010 1 commit
    • Neil Brown's avatar
      nfsd: ensure sockets are closed on error · 301e99ce
      Neil Brown authored
      One the changes in commit d7979ae4 "svc: Move close processing to a
      single place" is:
      
        err_delete:
      -       svc_delete_socket(svsk);
      +       set_bit(SK_CLOSE, &svsk->sk_flags);
              return -EAGAIN;
      
      This is insufficient. The recvfrom methods must always call
      svc_xprt_received on completion so that the socket gets re-queued if
      there is any more work to do.  This particular path did not make that
      call because it actually destroyed the svsk, making requeue pointless.
      When the svc_delete_socket was change to just set a bit, we should have
      added a call to svc_xprt_received,
      
      This is the problem that b0401d72 attempted to fix, incorrectly.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      301e99ce
  2. 28 Feb, 2010 2 commits
  3. 26 Feb, 2010 1 commit
    • Neil Brown's avatar
      sunrpc: remove unnecessary svc_xprt_put · ab1b18f7
      Neil Brown authored
      The 'struct svc_deferred_req's on the xpt_deferred queue do not
      own a reference to the owning xprt.  This is seen in svc_revisit
      which is where things are added to this queue.  dr->xprt is set to
      NULL and the reference to the xprt it put.
      
      So when this list is cleaned up in svc_delete_xprt, we mustn't
      put the reference.
      
      Also, replace the 'for' with a 'while' which is arguably
      simpler and more likely to compile efficiently.
      
      Cc: Tom Tucker <tom@opengridcomputing.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      ab1b18f7
  4. 25 Feb, 2010 1 commit
  5. 20 Feb, 2010 2 commits
  6. 08 Feb, 2010 2 commits
  7. 29 Jan, 2010 1 commit
  8. 27 Jan, 2010 1 commit
    • Chuck Lever's avatar
      NFSD: Create PF_INET6 listener in write_ports · 37498292
      Chuck Lever authored
      Try to create a PF_INET6 listener for NFSD, if IPv6 is enabled in the
      kernel.
      
      Make sure nfsd_serv's reference count is decreased if
      __write_ports_addxprt() failed to create a listener.  See
      __write_ports_addfd().
      
      Our current plan is to rely on rpc.nfsd to create appropriate IPv6
      listeners when server-side NFS/IPv6 support is desired.  Legacy
      behavior, via the write_threads or write_svc kernel APIs, will remain
      the same -- only IPv4 listeners are created.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      [bfields@citi.umich.edu: Move error-handling code to end]
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      37498292
  9. 26 Jan, 2010 4 commits
  10. 20 Jan, 2010 1 commit
  11. 14 Jan, 2010 1 commit
  12. 13 Jan, 2010 15 commits
  13. 12 Jan, 2010 8 commits