An error occurred fetching the project authors.
  1. 15 Oct, 2002 1 commit
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · b354d917
      Trond Myklebust authored
      Further cleanups
      
      Separate the static and dynamic filesystem data retrieval calls as per the
      NFSv3 spec. This also simplifies things for NFSv4, since many of the
      attributes in the fsinfo+fstat combined call are not mandatory to
      implement.
      b354d917
  2. 11 Oct, 2002 2 commits
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · be6b809b
      Trond Myklebust authored
      In NFSv3, an RPC is retried if the special error NFSERR_JUKEBOX is
      received.  This generic bit of postprocessing happens invisibly for
      synchronous RPC's, but in the async case, the ->tk_exit callback
      must call nfs_async_handle_jukebox() by hand.
      
      In NFSv4, we also need generic postprocessing of async RPC's, but
      the details are different.  Therefore, we don't want to call
      nfs_async_handle_jukebox(); we want to call a different, NFSv4-specific
      routine.  Therefore, we want to move calls to nfs_async_handle_jukebox()
      out of the "generic" NFS code and into NFSv3-specific routines.  This
      has already been done for async READ and WRITE in the preceding patches,
      but there is still one outstanding case: the async REMOVE in sillyrename.
      
      This patch removes nfs_async_handle_jukebox() from the async sillyrename
      path, and puts in the NFSv3 ->unlink_done() rpc_op.
      be6b809b
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · c44ca040
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      This patch does for the async WRITE and COMMIT paths what patch 15
      did for the async READ path, by defining new nfs_rpc_ops ->setup_write()
      and ->setup_commit().
      c44ca040
  3. 10 Oct, 2002 3 commits
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 63a5ba42
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      In this patch, we finish modifying the async READ path so that it is
      version-agnostic.  We define a new nfs_rpc_op ->setup_read(), and move
      the v2- and v3-specific code in nfs_read_rpcsetup() there.  We also
      have to change nfs_readpage() result so that the 'count' of bytes
      read is a parameter.  The extra parameter means that it can no longer
      be ->tk_exit().  Instead, it is called from a version-specific ->tk_exit()
      routine which is set in ->read_setup().
      
      The upshot of all this is that the version-specific part of the
      async READ path has been encapsulated in a new nfs_rpc_op
      ->read_setup(), and NFSv4 can share the logic for asynchronous
      READ's with NFSv2 and v3.
      63a5ba42
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 62d86355
      Trond Myklebust authored
      This patch changes the interface of the ->setattr() nfs_rpc_op
      so that its first argument is a dentry instead of an inode.
      
      [Explanation: The dentry is required because in NFSv4, we may
       need to OPEN the file before doing the SETATTR.  (This is
       required if the file size is changed as part of the setattr.)
       Opening the file requires making use of the containing
       directory's inode.]
      62d86355
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 40a4b2a4
      Trond Myklebust authored
      This patch changes the interface of the ->readdir() nfs_rpc_op
      so that its first argument is a dentry instead of an inode.
      
      [Explanation: The dentry is required because in NFSv4, we need
       to make use of the _parent_ directory's inode.  This is because
       NFSv4 servers no longer return an entry for ".." in the READDIR
       response, so the client kernel needs to fake this entry, inode
       number and all.]
      40a4b2a4
  4. 10 Sep, 2002 1 commit
  5. 28 May, 2002 2 commits
    • Trond Myklebust's avatar
      [PATCH] RPC client receive deadlock removal on HIGHMEM systems · 68c45a68
      Trond Myklebust authored
      Remove another class of rpciod deadlocks on HIGHMEM systems. Kick habit of
      keeping pages kmap()ed for the entire duration of NFS
      read/readdir/readlink operations.
      
      Use struct page directly in RPC client data receive buffer. TCP and UDP
      sk->data_ready() bottom-halves copy (and checksum when needed) data into
      pages rather than iovecs. atomic_kmap() of single pages is used for the
      copy.
      
      include/linux/xdr.h
         Declare structure for copying an sk_buff here rather than in xprt.c.
         Forward declaration of new functions.
      
      include/linux/sunrpc/xprt.h
         RPC client receive buffer changed to use new format 'struct xdr_buf'.
      
      net/sunrpc/clnt.c
         Initialize new format receive buffer.
      
      net/sunrpc/sunrpc_syms.c
         Export xdr_inline_pages(), xdr_shift_buf()
      
      net/sunrpc/xdr.c
         xdr_inline_pages() inlines pages into the receive buffer.
         xdr_partial_copy_from_skb() replaces csum_partial_copy_to_page_cache()
      	and copy code in tcp_read_request(). Provides sendfile()-style
      	method for copying data from an skb into a struct xdr_buf.
         xdr_shift_buf() replaces xdr_shift_iovec() for when we overestimate
      	the size of the RPC/NFS header.
      
      net/sunrpc/xprt.c
         Adapt UDP and TCP receive routines to use new format xdr_buf.
      
      include/linux/nfs_xdr.h
         struct nfs_readargs, nfs_readdirargs, nfs_readlinkargs,
      	nfs3_readdirargs, nfs3_readlinkargs all transmit page information.
         struct nfs_readdirres, nfs_readlinkres, nfs3_readlinkres obsoleted.
         struct nfs_rpc_ops->readlink(), readdir(), read() now send pages
      
      fs/nfs/dir.c
         Adapt to new format ->readdir().
         Avoid kmap() around the RPC call.
      
      fs/nfs/read.c
         Adapt to new format ->read() and struct nfs_readargs.
      
      fs/nfs/symlink.c
         Adapt to new format ->readlink().
      
      fs/nfs/proc.c
         Convert nfs_proc_readlink(), nfs_proc_readdir(), nfs_proc_read()
      
      fs/nfs/nfs2xdr.c
         Convert XDR routines to transmit page information.
         Remove duplicate zeroing of pages when server returns a short read.
      
      fs/nfs/nfs3proc.c
         Convert nfs3_proc_readlink(),nfs3_proc_readdir(),nfs3_proc_read()
      
      fs/nfs/nfs3xdr.c
         Convert XDR routines to transmit page information.
         Remove duplicate zeroing of pages when server returns a short read.
      
      Cheers,
        Trond
      68c45a68
    • Trond Myklebust's avatar
      [PATCH] Teach RPC client to send pages rather than iovecs. · 9f73fdbc
      Trond Myklebust authored
      Stop rpciod from deadlocking against itself in map_new_virtual() on HIGHMEM
      systems. RPC client currently has to keep all pages that are scheduled for
      transmission kmap()ed into an iovec for the entire duration of the call.
      We only actually need to kmap() pages while making the (non-blocking)
      call to sock_sendmsg().
      
      NOTE: When transmitting several pages in one RPC call, sock_sendmsg()
      requires us to kmap() *all* those pages at the same time. Opens for
      deadlocks between rpciod and some other process that also kmaps more
      than 1 page at a time.
      For the TCP case we can solve later by converting to TCP_CORK+sendpage().
      
      include/linux/sunrpc/xdr.h
         Introduce 'struct xdr_buf' in order to allow RPC layer to handle
         pages directly.
      
      include/linux/sunrpc/xprt.h:
         Convert the RPC client send-buffer to the new format.
      
      net/sunrpc/clnt.c
         Initialize the new format RPC send-buffer.
      
      net/sunrpc/sunrpc_syms.c
         Export xdr_encode_pages()
      
      net/sunrpc/xdr.c
         xdr_kmap() kmap()+copy a struct xdr_buf into an iovec array.
         xdr_kunmap() clean up after xdr_kmap().
         xdr_encode_pages() used to inline pages for transmission.
      
      net/sunrpc/xprt.c
         xprt_sendmsg() needs to kmap() the pages into an iovec for transmission.
      
      include/linux/nfs_xdr.h
         struct nfs_writeargs transmits full page information.
         Convert nfs_rpc_ops->write() to send pages.
      
      fs/nfs/write.c
         Adapt to new format nfs_writeargs / nfs_rpc_ops->write()
      
      fs/nfs/proc.c
         Convert nfs_proc_write().
      
      fs/nfs/nfs2xdr.c
         Convert nfs_xdr_writeargs()
      
      fs/nfs/nfs3proc.c
         Convert nfs3_proc_write().
      
      fs/nfs/nfs3xdr.c
         Convert nfs3_xdr_writeargs()
      
      Cheers,
         Trond
      9f73fdbc
  6. 30 Apr, 2002 1 commit
    • Dave Hansen's avatar
      [PATCH] shift BKL out of vfs_readdir · ec3630a1
      Dave Hansen authored
      This patch takes the BKL out of vfs_readdir() and moves it into the
      individual filesystems, all 35 of them.  I have the feeling that this
      wasn't done before because there are a lot of these to change and it was
      a pain to find them all.  I definitely got all of those that were
      defined in the in the structure declaration like this "readdir:
      fs_readdir;" vxfs_readdir was assigned strangely, but I found it anyway.
      I also left devfs out of this one.  Richard seems confident that devfs
      has no need for the BKL.
      ec3630a1
  7. 04 Apr, 2002 1 commit
  8. 09 Feb, 2002 1 commit
  9. 05 Feb, 2002 2 commits
    • Linus Torvalds's avatar
      v2.4.1.2 -> v2.4.1.3 · c8ebfc88
      Linus Torvalds authored
        - Jens: better ordering of requests when unable to merge
        - Neil Brown: make md work as a module again (we cannot autodetect
        in modules, not enough background information)
        - Neil Brown: raid5 SMP locking cleanups
        - Neil Brown: nfsd: handle Irix NFS clients named pipe behavior and
        dentry leak fix
        - maestro3 shutdown fix
        - fix dcache hash calculation that could cause bad hashes under certain
        circumstances (Dean Gaudet)
        - David Miller: networking and sparc updates
        - Jeff Garzik: include file cleanups
        - Andy Grover: ACPI update
        - Coda-fs error return fixes
        - rth: alpha Jensen update
      c8ebfc88
    • Linus Torvalds's avatar
      Import changeset · 7a2deb32
      Linus Torvalds authored
      7a2deb32