1. 09 11月, 2005 1 次提交
    • N
      [PATCH] md: better handling of readerrors with raid5. · 4e5314b5
      NeilBrown 提交于
      This patch changes the behaviour of raid5 when it gets a read error.
      Instead of just failing the device, it tried to find out what should have
      been there, and writes it over the bad block.  For some media-errors, this
      has a reasonable chance of fixing the error.  If the write succeeds, and a
      subsequent read succeeds as well, raid5 decided the address is OK and
      conitnues.
      
      Instead of failing a drive on read-error, we attempt to re-write the block,
      and then re-read.  If that all works, we allow the device to remain in the
      array.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4e5314b5
  2. 07 11月, 2005 1 次提交
  3. 01 11月, 2005 1 次提交
    • J
      [BLOCK] Unify the seperate read/write io stat fields into arrays · a362357b
      Jens Axboe 提交于
      Instead of having ->read_sectors and ->write_sectors, combine the two
      into ->sectors[2] and similar for the other fields. This saves a branch
      several places in the io path, since we don't have to care for what the
      actual io direction is. On my x86-64 box, that's 200 bytes less text in
      just the core (not counting the various drivers).
      Signed-off-by: NJens Axboe <axboe@suse.de>
      a362357b
  4. 10 9月, 2005 2 次提交
  5. 02 8月, 2005 1 次提交
  6. 28 7月, 2005 1 次提交
  7. 22 6月, 2005 4 次提交
    • N
      [PATCH] md: fix deadlock due to md thread processing delayed requests. · 3d310eb7
      NeilBrown 提交于
      Before completing a 'write' the md superblock might need to be updated.
      This is best done by the md_thread.
      
      The current code schedules this up and queues the write request for later
      handling by the md_thread.
      
      However some personalities (Raid5/raid6) will deadlock if the md_thread
      tries to submit requests to its own array.
      
      So this patch changes things so the processes submitting the request waits
      for the superblock to be written and then submits the request itself.
      
      This fixes a recently-created deadlock in raid5/raid6
      Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3d310eb7
    • N
      [PATCH] md: improve the interface to sync_request · 57afd89f
      NeilBrown 提交于
      1/ change the return value (which is number-of-sectors synced)
       from 'int' to 'sector_t'.
       The number of sectors is usually easily small enough to fit
       in an int, but if resync needs to abort, it may want to return
       the total number of remaining sectors, which could be large.
       Also errors cannot be returned as negative numbers now, so use
       0 instead
      2/ Add a 'skipped' return parameter to allow the array to report
       that it skipped the sectors.  This allows md to take this into account
       in the speed calculations.
       Currently there is no important skipping, but the bitmap-based-resync
       that is coming will use this.
      Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      57afd89f
    • N
      [PATCH] md: improve locking on 'safemode' and move superblock writes · 06d91a5f
      NeilBrown 提交于
      When md marks the superblock dirty before a write, it calls
      generic_make_request (to write the superblock) from within
      generic_make_request (to write the first dirty block), which could cause
      problems later.
      
      With this patch, the superblock write is always done by the helper thread, and
      write request are delayed until that write completes.
      
      Also, the locking around marking the array dirty and writing the superblock is
      improved to avoid possible races.
      Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      06d91a5f
    • N
      [PATCH] md: merge md_enter_safemode into md_check_recovery · fca4d848
      NeilBrown 提交于
      md_enter_safemode checks if it is time to mark the md superblock as 'clean'.
      i.e.  if all writes have completed and a suitable delay has passed.
      
      This is currently called from md_handle_safemode which in-turn is called
      (almost) every time md_check_recovery is called, and from the end of
      md_do_sync which causes the mddev->thread to run, which will always call
      md_check_recovery as well.
      
      So it doesn't need to be a separate function and fits quite well into
      md_check_recovery.
      
      The "almost" is because multipathd calls md_check_recovery but not
      md_handle_safemode.  This is OK because the code from md_enter_safemode is a
      no-op if mddev->safemode == 0, which it always is for a multipathd (providing
      we don't allow it to be set to 2 on a signal...)
      Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fca4d848
  8. 17 5月, 2005 1 次提交
  9. 01 5月, 2005 1 次提交
  10. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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!
      1da177e4