An error occurred fetching the project authors.
  1. 03 Jun, 2002 1 commit
    • Trond Myklebust's avatar
      [PATCH] Fix Oops due to use of incorrect km_type in RPC socket code... · 0ed9bc09
      Trond Myklebust authored
      The following has been vetted with davem w.r.t. the change to
      KM_SKB_DATA. Apologies for the bug...
      
      include/asm-*/kmap_types.h:
         Replace the unused km_type slot KM_SKB_DATA with
         KM_SKB_SUNRPC_DATA.
      
      net/sunrpc/xdr.c:
         Replace the use of KM_USER0 with KM_SKB_SUNRPC_DATA for copying
         data from an skb into the page cache when in the sk->data_ready()
         callback.
      0ed9bc09
  2. 28 May, 2002 3 commits
    • Trond Myklebust's avatar
      [PATCH] Clean out routines that were obsoleted by previous · 4873da0e
      Trond Myklebust authored
      Remove obsolete NFS and RPC routines.
      Remove 'inline' attribute from xdr_decode_fattr().
      4873da0e
    • 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
  3. 05 Feb, 2002 4 commits
    • Linus Torvalds's avatar
      v2.4.10.1 -> v2.4.10.2 · 5bf3be03
      Linus Torvalds authored
        - me/Al Viro: fix bdget() oops with block device modules that don't
        clean up after they exit
        - Alan Cox: continued merging (drivers, license tags)
        - David Miller: sparc update, network fixes
        - Christoph Hellwig: work around broken drivers that add a gendisk more
        than once
        - Jakub Jelinek: handle more ELF loading special cases
        - Trond Myklebust: NFS client and lockd reclaimer cleanups/fixes
        - Greg KH: USB updates
        - Mikael Pettersson: sparate out local APIC / IO-APIC config options
      5bf3be03
    • Linus Torvalds's avatar
      v2.4.9.12 -> v2.4.9.13 · a27c6530
      Linus Torvalds authored
        - Manfred Spraul: /proc/pid/maps cleanup (and bugfix for non-x86)
        - Al Viro: "block device fs" - cleanup of page cache handling
        - Hugh Dickins: VM/shmem cleanups and swap search speedup
        - David Miller: sparc updates, soc driver typo fix, net updates
        - Jeff Garzik: network driver updates (dl2k, yellowfin and tulip)
        - Neil Brown: knfsd cleanups and fixues
        - Ben LaHaise: zap_page_range merge from -ac
      a27c6530
    • Linus Torvalds's avatar
      v2.4.9.4 -> v2.4.9.5 · 1c3cefa5
      Linus Torvalds authored
        - Merge with Alan
        - Trond Myklebust: NFS fixes - kmap and root inode special case
        - Al Viro: more superblock cleanups, inode leak in rd.c, minix
        directories in page cache
        - Paul Mackerras: clean up rubbish from sl82c105.c
        - Neil Brown: md/raid cleanups, NFS filehandles
        - Johannes Erdfelt: USB update (usb-2.0 support, visor fix, Clie fix,
        pl2303 driver update)
        - David Miller: sparc and net update
        - Eric Biederman: simplify and correct bootdata allocation - don't
        overwrite ramdisks
        - Tim Waugh: support multiple SuperIO devices, parport doc updates
      1c3cefa5
    • Linus Torvalds's avatar
      Import changeset · 7a2deb32
      Linus Torvalds authored
      7a2deb32