1. 17 Feb, 2007 1 commit
  2. 12 Feb, 2007 2 commits
  3. 11 Feb, 2007 15 commits
  4. 09 Feb, 2007 1 commit
    • Neil Brown's avatar
      [PATCH] md: fix various bugs with aligned reads in RAID5 · 387bb173
      Neil Brown authored
      It is possible for raid5 to be sent a bio that is too big for an underlying
      device.  So if it is a READ that we pass stright down to a device, it will
      fail and confuse RAID5.
      So in 'chunk_aligned_read' we check that the bio fits within the parameters
      for the target device and if it doesn't fit, fall back on reading through
      the stripe cache and making lots of one-page requests.
      Note that this is the earliest time we can check against the device because
      earlier we don't have a lock on the device, so it could change underneath
      Also, the code for handling a retry through the cache when a read fails has
      not been tested and was badly broken.  This patch fixes that code.
      Signed-off-by: default avatarNeil Brown <neilb@suse.de>
      Cc: "Kai" <epimetreus@fastmail.fm>
      Cc: <stable@suse.de>
      Cc: <org@suse.de>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  5. 30 Jan, 2007 1 commit
  6. 23 Jan, 2007 1 commit
    • Linas Vepstas's avatar
      [PATCH] elevator: move clearing of unplug flag earlier · 95543179
      Linas Vepstas authored
      A flag was recently added to the elevator code to avoid
      performing an unplug when reuests are being re-queued.
      The goal of this flag was to avoid a deep recursion that
      can occur when re-queueing requests after a SCSI device/host
      reset.  See http://lkml.org/lkml/2006/5/17/254
      However, that fix added the flag near the bottom of a case
      statement, where an earlier break (in an if statement) could
      transport one out of the case, without setting the flag.
      This patch sets the flag earlier in the case statement.
      I re-discovered the deep recursion recently during testing;
      I was told that it was a known problem, and the fix to it was
      in the kernel I was testing. Indeed it was ... but it didn't
      fix the bug. With the patch below, I no longer see the bug.
      Signed-off by: Linas Vepstas <linas@austin.ibm.com>
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Cc: Chris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  7. 02 Jan, 2007 1 commit
    • Jens Axboe's avatar
      [PATCH] cfq-iosched: merging problem · ec8acb69
      Jens Axboe authored
      Two issues:
      - The final return 1 should be a return 0, otherwise comparing cfqq is
        a noop.
      - bio_sync() only checks the sync flag, while rq_is_sync() checks both
        for READ and sync. The latter is what we want. Expand the bio check
        to include reads, and relax the restriction to allow merging of async
        io into sync requests.
      In the future we want to clean up the SYNC logic, right now it means
      both sync request (such as READ and O_DIRECT WRITE) and unplug-on-issue.
      Leave that for later.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  8. 22 Dec, 2006 3 commits
  9. 20 Dec, 2006 1 commit
    • Jens Axboe's avatar
      [PATCH] cfq-iosched: don't allow sync merges across queues · da775265
      Jens Axboe authored
      Currently we allow any merge, even if the io originates from different
      processes. This can cause really bad starvation and unfairness, if those
      ios happen to be synchronous (reads or direct writes).
      So add a allow_merge hook to the io scheduler ops, so an io scheduler can
      help decide whether a bio/process combination may be merged with an
      existing request.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
  10. 19 Dec, 2006 5 commits
  11. 13 Dec, 2006 2 commits
  12. 12 Dec, 2006 3 commits
  13. 10 Dec, 2006 1 commit
  14. 08 Dec, 2006 3 commits