07 Jan, 2006

5 commits

  • ...and avoid calling set_page_dirty on them

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Most NFS server implementations allow up to 64KB reads and writes on the
    wire. The Solaris NFS server allows up to a megabyte, for instance.

    Now the Linux NFS client supports transfer sizes up to 1MB, too. This will
    help reduce protocol and context switch overhead on read/write intensive NFS
    workloads, and support larger atomic read and write operations on servers
    that support them.

    Test-plan:
    Connectathon and iozone on mount point with wsize=rsize>32768 over TCP.
    Tests with NFS over UDP to verify the maximum RPC payload size cap.

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

    Chuck Lever
     
  • Replace ad hoc write parameter sanity checking in nfs_file_direct_write()
    with a call to generic_write_checks(). This should make the proper checks
    modulo the O_LARGEFILE flag, and should catch NFSv2-specific limitations by
    virtue of i_sb->s_maxbytes.

    Test plan:
    Posix compliance testing with both NFSv2 and NFSv3.

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

    Chuck Lever
     
  • The NFSv4 model requires us to complete all RPC calls that might
    establish state on the server whether or not the user wants to
    interrupt it. We may also need to schedule new work (including
    new RPC calls) in order to cancel the new state.

    The asynchronous RPC model will allow us to ensure that RPC calls
    always complete, but in order to allow for "synchronous" RPC, we
    want to add the ability to wait for completion.
    The waits are, of course, interruptible.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Shrink the RPC task structure. Instead of storing separate pointers
    for task->tk_exit and task->tk_release, put them in a structure.

    Also pass the user data pointer as a parameter instead of passing it via
    task->tk_calldata. This enables us to nest callbacks.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

20 Dec, 2005

1 commit


05 Nov, 2005

1 commit


24 Jun, 2005

1 commit

  • The following patch removes the f_error field and all checks of f_error.

    Trond said:

    f_error was introduced for NFS, and made sense when we were guaranteed
    always to have a file pointer around when write errors occurred. Since
    then, we have (for various reasons) had to introduce the nfs_open_context in
    order to track the file read/write state, and it made sense to move our
    f_error tracking there too.

    Signed-off-by: Christoph Lameter
    Acked-by: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

23 Jun, 2005

1 commit

  • Instead of looking at whether or not the file is open for writes before
    we accept to update the length using the server value, we should rather
    be looking at whether or not we are currently caching any writes.

    Failure to do so means in particular that we're not updating the file
    length correctly after obtaining a POSIX or BSD lock.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds