11 Jul, 2007

21 commits


01 May, 2007

3 commits

  • Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Currently rpc_malloc sets req->rq_buffer internally. Make this a more
    generic interface: return a pointer to the new buffer (or NULL) and
    make the caller set req->rq_buffer and req->rq_bufsize. This looks much
    more like kmalloc and eliminates the side effects.

    To fix a potential deadlock, this patch also replaces GFP_NOFS with
    GFP_NOWAIT in rpc_malloc. This prevents async RPCs from sleeping outside
    the RPC's task scheduler while allocating their buffer.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • The RPC buffer size estimation logic in net/sunrpc/clnt.c always
    significantly overestimates the requirements for the buffer size.
    A little instrumentation demonstrated that in fact rpc_malloc was never
    allocating the buffer from the mempool, but almost always called kmalloc.

    To compute the size of the RPC buffer more precisely, split p_bufsiz into
    two fields; one for the argument size, and one for the result size.

    Then, compute the sum of the exact call and reply header sizes, and split
    the RPC buffer precisely between the two. That should keep almost all RPC
    buffers within the 2KiB buffer mempool limit.

    And, we can finally be rid of RPC_SLACK_SPACE!

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

21 Apr, 2007

1 commit

  • Fix a regression due to the patch "NFS: disconnect before retrying NFSv4
    requests over TCP"

    The assumption made in xprt_transmit() that the condition
    "req->rq_bytes_sent == 0 and request is on the receive list"
    should imply that we're dealing with a retransmission is false.
    Firstly, it may simply happen that the socket send queue was full
    at the time the request was initially sent through xprt_transmit().
    Secondly, doing this for each request that was retransmitted implies
    that we disconnect and reconnect for _every_ request that happened to
    be retransmitted irrespective of whether or not a disconnection has
    already occurred.

    Fix is to move this logic into the call_status request timeout handler.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Linus Torvalds

    Trond Myklebust
     

13 Feb, 2007

2 commits

  • Conflicts:

    net/sunrpc/auth_gss/gss_krb5_crypto.c
    net/sunrpc/auth_gss/gss_spkm3_token.c
    net/sunrpc/clnt.c

    Merge with mainline and fix conflicts.

    Trond Myklebust
     
  • RFC3530 section 3.1.1 states an NFSv4 client MUST NOT send a request
    twice on the same connection unless it is the NULL procedure. Section
    3.1.1 suggests that the client should disconnect and reconnect if it
    wants to retry a request.

    Implement this by adding an rpc_clnt flag that an ULP can use to
    specify that the underlying transport should be disconnected on a
    major timeout. The NFSv4 client asserts this new flag, and requests
    no retries after a minor retransmit timeout.

    Note that disconnecting on a retransmit is in general not safe to do
    if the RPC client does not reuse the TCP port number when reconnecting.

    See http://bugzilla.linux-nfs.org/show_bug.cgi?id=6

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

11 Feb, 2007

1 commit


04 Feb, 2007

2 commits


25 Jan, 2007

1 commit


06 Dec, 2006

6 commits


03 Dec, 2006

1 commit


02 Oct, 2006

1 commit

  • Replace references to system_utsname to the per-process uts namespace
    where appropriate. This includes things like uname.

    Changes: Per Eric Biederman's comments, use the per-process uts namespace
    for ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c

    [jdike@addtoit.com: UML fix]
    [clg@fr.ibm.com: cleanup]
    [akpm@osdl.org: build fix]
    Signed-off-by: Serge E. Hallyn
    Cc: Kirill Korotaev
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Andrey Savochkin
    Signed-off-by: Cedric Le Goater
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     

29 Sep, 2006

1 commit