1. 08 Jan, 2003 19 commits
    • Trond Myklebust's avatar
      [PATCH] allow arbitrary alignment of NFS read/write requests · 0c5bb195
      Trond Myklebust authored
      Patch by Chuck Lever to add a new field called wb_pgbase to the
      nfs_page struct. This separates the concept of file page offset from
      buffer page offset, allowing NFS to specify read and write requests
      into buffers at offsets that are independent of the file page
      offset. It is a prequisite for direct I/O in NFS.
      0c5bb195
    • Trond Myklebust's avatar
      [PATCH] Fix NFS 'off by one' bug · 8701dd18
      Trond Myklebust authored
       This fixes a bug that was found using the Stanford checker.
      8701dd18
    • Joe Thornber's avatar
      [PATCH] dm: Remove redundant error checking · 51fe403a
      Joe Thornber authored
      bio_alloc() shouldn't fail if GFP_NOIO is used, and the bvec count is
      sensible.  So remove redundant error checking.
      51fe403a
    • Joe Thornber's avatar
      [PATCH] dm: Export dm_table_get_mode() · 0dc1f7c9
      Joe Thornber authored
      Export dm_table_get_mode()
      0dc1f7c9
    • Joe Thornber's avatar
      [PATCH] dm: Simplify error->map · 2a94489d
      Joe Thornber authored
      Just return an error from the error targets map function, rather than
      erroring the buffer_head.
      2a94489d
    • Joe Thornber's avatar
      [PATCH] dm: printk tgt->error if dm_table_add_target() fails. · 1006c21b
      Joe Thornber authored
      printk tgt->error if dm_table_add_target() fails.
      1006c21b
    • Joe Thornber's avatar
      [PATCH] dm: Remove explicit returns from void fns (fluff) · 20bf21d4
      Joe Thornber authored
      Remove explicit return at the end of a couple of void functions.
      20bf21d4
    • Joe Thornber's avatar
      [PATCH] dm: Call dm_put_target_type() *after* calling the destructor · dd98ae15
      Joe Thornber authored
      Call dm_put_target_type() *after* calling the destructor.
      dd98ae15
    • Joe Thornber's avatar
      [PATCH] dm: rwlock_t -> rw_semaphore (fluff) · adce4649
      Joe Thornber authored
      Use a rw_semaphore in dm_target.c rather than a rwlock_t, just to keep
      in line with dm.c
      adce4649
    • Joe Thornber's avatar
      [PATCH] dm: Correct target_type reference counting · 659a1d12
      Joe Thornber authored
      ti->use was only getting incremented the first time a target type was
      retrieved (bug introduced by recent hch patch).
      659a1d12
    • Joe Thornber's avatar
      [PATCH] dm: Correct clone info initialisation · f338ca08
      Joe Thornber authored
      Initialize the clone-info's index to the original bio's index.
      Required to properly handle stacking DM devices. [Kevin Corry]
      f338ca08
    • Joe Thornber's avatar
      [PATCH] dm: Don't let the ioctl interface drop a suspended device · d7002d66
      Joe Thornber authored
      Don't let the ioctl interface drop a suspended device.
      d7002d66
    • Andrew Morton's avatar
      [PATCH] Reduced wakeup rate in direct-io code · a10edc31
      Andrew Morton authored
      We don't need to wake up the synchronous waiter for every BIO
      completion - just for the final BIO.
      
      This reduces the context switch rate of a 180 megabyte/sec read from
      3500/sec to 2200/sec when performing 1400 128k I/Os per second, so it
      more than halves the overhead.
      a10edc31
    • Andrew Morton's avatar
      [PATCH] AIO support for raw/O_DIRECT · c22c8389
      Andrew Morton authored
      Patch from Badari Pulavarty <pbadari@us.ibm.com> and myself.
      
      This patch adds AIO support for direct-IO - O_DIRECT files, O_DIRECT
      blockdevs and /dev/raw/rawN.
      
      Also, the controlling `struct dio' is now always kmalloced, saving ~400 bytes
      of stack.
      
      The best tool for testing AIO/DIO is the modified fsx-linux in ext3 CVS.
      See http://www.zip.com.au/~akpm/linux/ext3/ for details.  For example:
      
      	fsx-linux -Z -A -R -W -r 512 -w 4096 foo
      
      Running many instances of this against ext3 currently fails with incorrect
      file data; some bug in the new ext3 O_DIRECT support.  ext2 is OK though.
      c22c8389
    • Andrew Morton's avatar
      [PATCH] bio dirtying infrastructure · 511d2652
      Andrew Morton authored
      In two cases (AIO-for-direct-IO and some CDROM DMA stuff which Jens
      did), we need to run set_page_dirty() in interrupt context.  After DMA
      hardware has altered userspace pages for direct-IO reads.
      
      But mapping->page_lock, mapping->private_lock and inode_lock are not
      irq-safe.  And really, we don't want to convert those locks just for this
      problem.
      
      So what we do is to dirty the pages *before* starting I/O.  Then, in
      interrupt completion context, check to see that they are still dirty.
      If so then there is nothing to do.  But if the pages were cleaned while
      the direct-IO is in progress we need to redirty them.  The code uses
      schedule_work() for that.
      
      Of course, we could use schedule_work() for all BIOs and pages.  The
      speculative dirty-before-starting-IO is just an optimisation.  It's
      quite unlikely that any of the pages will be cleaned during the direct
      IO.
      
      
      This code is basically untestable under normal circumstances, because the
      relevant pages are pinned via get_user_pages().  This makes
      is_page_cache_freeable() evaluate false and the VM doesn't try to write them
      out anyway.  But if the pages happen to be MAP_SHARED file pages, pdflush
      could clean them.  The way I tested this code was to disable the call to
      bio_set_pages_dirty() in fs/direct-io.c.
      511d2652
    • Andrew Morton's avatar
      [PATCH] AIO support for raw/O_DIRECT · 08e6749e
      Andrew Morton authored
      Patch from Badari Pulavarty <pbadari@us.ibm.com> and myself
      
      This patch adds the infrastructure for performing asynchronous (AIO) blockdev
      direct-IO.
      
      - Adds generic_file_aio_write_nolock() and make other
        generic_file_*_write() to use it.
      
      - Modify generic_file_direct_IO() and ->direct_IO() functions to take
        "kiocb *" instead of "file *".
      
      - Renames generic_direct_IO() to blockdev_direct_IO().
      
      - Move generic_file_direct_IO() to mm/filemap.c (it is not
        blockdev-specific, whereas the rest of fs/direct-io.c is).
      
      - Add AIO read/write support to the raw driver.
      08e6749e
    • Andrew Morton's avatar
      [PATCH] return the correct thing from direct-io · a6d61b6b
      Andrew Morton authored
      If direct-io encounters an error, it currently returns that error even if it
      performed some I/O.
      
      Change it so that if there is an error and we read or wrote something, return
      the number of bytes written/read.  Only return the error code if zero bytes
      were written/read.
      a6d61b6b
    • Andrew Morton's avatar
      [PATCH] AIO exit fix · 90c4bb05
      Andrew Morton authored
      We need to run exit_aio() when the final user of the mm goes away, else lots
      of things leak.
      
      Also remove a printk which comes out when this change is made.
      
      This patch was acked by bcrl.
      90c4bb05
    • Adrian Bunk's avatar
      [PATCH] remove code for 2.0 kernels from drivers/char/ftape/* · bebaf4f0
      Adrian Bunk authored
      The patch below is large but trivial:
      
      It removes old #if'd compatiblity code for 2.0 kernels from
      drivers/char/ftape/* (this includes the removal of two header files
      including only compatibility code and the #include's of these files).
      bebaf4f0
  2. 07 Jan, 2003 21 commits