An error occurred fetching the project authors.
  1. 29 Mar, 2004 1 commit
  2. 13 Mar, 2004 1 commit
  3. 12 Mar, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] fix raid0 readahead size · 132a4161
      Andrew Morton authored
      From: Arjan van de Ven <arjanv@redhat.com>
      
      Readahead of raid0 was suboptimal; it read only 1 stride ahead.  The
      problem with this is that while it will keep all spindles busy, it will not
      actually manage to make larger IO's, eg each disk would just do the chunk
      size IO.  Doing at least 2 chunks is more than appropriate so that each
      spindle will get a chance to merge IO's.
      
      (Neil fixed raid6 and raid6 too)
      132a4161
  4. 18 Feb, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] md: Allow partitioning of MD devices. · 1797a796
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      With this patch, md used two major numbers for arrays.
      
      One Major is number 9 with name 'md' have unpartitioned md arrays, one per
      minor number.
      
      The other Major is allocated dynamically with name 'mdp' and had on array for
      every 64 minors, allowing for upto 63 partitions.
      
      The arrays under one major are completely separate from the arrays under the
      other.
      
      The preferred name for devices with the new major are of the form:
      
        /dev/md/d1p3  # partion 3 of device 1 - minor 67
      
      When a paritioned md device is assembled, the partitions are not recognised
      until after the whole-array device is opened again.  A future version of
      mdadm will perform this open so that the need will be transparent.
      1797a796
  5. 04 Feb, 2004 2 commits
  6. 20 Jan, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] md: Don't allow raid5 rebuild to swamp raid5 stripe cache · 5edef83d
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      raid5 rebuild takes stripes so agressively that other access cannot get a
      look-in.
      
      With this patch, the rebuild pauses slightly if there is a shortage of
      stripes to let other processes have a chance.
      
      akpm: I was worried about starvation due to the harsh semantics of yield() in
      2.6.  But Neil has performed specific testing for that and things seem OK. 
      If people do note CPU starvation problems we will need to replace the yield()
      with a schedule_timeout(1).
      5edef83d
  7. 29 Dec, 2003 1 commit
  8. 15 Dec, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] Fix possible bio corruption with RAID5 · e1f936a9
      Neil Brown authored
       1/ make sure raid5 doesn't try to handle multiple overlaping
          requests at the same time as this would confuse things badly.
          Currently it justs BUGs if this is attempted.
       2/ Fix a possible data-loss-on-write problem.  If two or
          more bio's that write to the same page are processed at the
          same time, only the first was actually commited to storage.
       3/ Fix a use-after-free bug.  raid5 keeps the bio's it is given
          in linked lists when more than one bio touch a single page.
          In some cases the tail of this list can be freed, and
          the current test for 'are we at the end' isn't reliable.
          This patch strengths the test to make it reliable.
      e1f936a9
  9. 22 Sep, 2003 1 commit
  10. 31 Aug, 2003 1 commit
  11. 13 Aug, 2003 1 commit
  12. 06 Aug, 2003 1 commit
    • Jens Axboe's avatar
      [PATCH] Proper block queue reference counting · ace416a3
      Jens Axboe authored
      To be able to properly be able to keep references to block queues,
      we make blk_init_queue() return the queue that it initialized, and
      let it be independently allocated and then cleaned up on the last
      reference.
      
      I have grepped high and low, and there really shouldn't be any broken
      uses of blk_init_queue() in the kernel drivers left.  The added bonus
      being blk_init_queue() error checking is explicit now, most of the
      drivers were broken in this regard (even IDE/SCSI).
      
      No drivers have embedded request queue structures. Drivers that don't
      use blk_init_queue() but blk_queue_make_request(), should allocate the
      queue with blk_alloc_queue(gfp_mask). I've converted all of them to do
      that, too. They can call blk_cleanup_queue() now too, using the define
      blk_put_queue() is probably cleaner though.
      ace416a3
  13. 10 Jun, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] md - Zero out some kmalloced space in md driver · ccd3a853
      Neil Brown authored
      This should fix most (all??) of the recently reported problems with MD:
      
      Recent changes to md malloced some data structures differently and
      didn't zero out those data structures, where the old code had zeroed it
      out.
      
      This adds the relevant memsets.
      ccd3a853
  14. 04 Jun, 2003 1 commit
  15. 26 May, 2003 5 commits
  16. 03 Apr, 2003 2 commits
    • Neil Brown's avatar
    • Andrew Morton's avatar
      [PATCH] bio kmapping changes · 240d3e2d
      Andrew Morton authored
      RAID5 is calling copy_data() under sh->lock.  But copy_data() does kmap(),
      which can sleep.
      
      The best fix is to use kmap_atomic() in there.  It is faster than kmap() and
      does not block.
      
      The patch removes the unused bio_kmap() and replaces __bio_kmap() with
      __bio_kmap_atomic().  I think it's best to withdraw the sleeping-and-slow
      bio_kmap() from the kernel API before someone else tries to use it.
      
      
      Also, I notice that bio_kmap_irq() was using local_save_flags().  This is a
      bug - local_save_flags() does not disable interrupts.  Converted that to
      local_irq_save().  These names are terribly chosen.
      
      This patch was acked by Jens and Neil.
      240d3e2d
  17. 27 Mar, 2003 2 commits
  18. 14 Mar, 2003 4 commits
    • Neil Brown's avatar
      [PATCH] md: Allow components of MD raid array to have data start at offset from start of device. · b931e459
      Neil Brown authored
      Normally the data stored on a component of a RAID array is stored
      from the start of the device.  This patch allows a per-device
      data_offset so the data can start elsewhere. This will allow
      RAID arrays where the metadata is at the head of the device
      rather than the tail.
      b931e459
    • Neil Brown's avatar
      [PATCH] md: Remove md_recoveryd thread for md · 8eec7ce0
      Neil Brown authored
      The md_recoveryd thread is responsible for initiating and cleaning
      up resync threads.
      This job can be equally well done by the per-array threads
      for those arrays which might need it.
      
      So the mdrecoveryd thread is gone and the core code that
      it ran is now run by raid5d, raid1d or multipathd.
      
      We add an MD_RECOVERY_NEEDED flag so those daemon don't have
      to bother trying to lock the md array unless it is likely
      that something needs to be done.
      
      Also modify the names of all threads to have the number of
      md device.
      8eec7ce0
    • Neil Brown's avatar
      [PATCH] md: Tidy up recovery_running flags in md · cb129263
      Neil Brown authored
      Md uses ->recovery_running and ->recovery_err to keep track of the
      status or recovery.  This is rather ad hoc and race prone.
      
      This patch changes it to ->recovery which has bit flags for various
      states.
      cb129263
    • Neil Brown's avatar
      [PATCH] md: Convert /proc/mdstat to use seq_file · d7710d00
      Neil Brown authored
      From: Angus Sawyer <angus.sawyer@dsl.pipex.com>
      
      Mainly straightforward convert of sprintf -> seq_printf.  seq_start and
      seq_next modelled on /proc/partitions.  locking/ref counting as for
      ITERATE_MDDEV.
      
      pos == 0 -> header
      pos == n -> nth mddev
      pos == 0x10000 -> tail
      d7710d00
  19. 17 Feb, 2003 2 commits
    • Neil Brown's avatar
      [PATCH] Provide a 'safe-mode' for soft raid. · 063e9f83
      Neil Brown authored
      When a raid1 or raid5 array is in 'safe-mode', then the array
      is marked clean whenever there are no outstanding write requests,
      and is marked dirty again before allowing any write request to
      proceed.
      
      This means than an unclean shutdown while no write activity is happening
      will NOT cause a resync to be required.  However it does mean extra
      updates to the superblock.
      
      Currently safe-mode is turned on by sending SIGKILL to the raid thread
      as would happen at a normal shutdown.  This should mean that the
      reboot notifier is no longer needed.
      
      After looking more at performance issues I may make safemode be on
      all the time.  I will almost certainly make it on when RAID5 is degraded
      as an unclean shutdown of a degraded RAID5 means data loss.
      
      This code was provided by  Angus Sawyer <angus.sawyer@dsl.pipex.com>
      063e9f83
    • Neil Brown's avatar
      [PATCH] Add name of md device to name of thread managing that device. · f8015734
      Neil Brown authored
      This allows the thread to easily identified and signalled.
      The point of signalling will appear in the next patch.
      f8015734
  20. 05 Jan, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] md: Record location of incomplete resync at shutdown and restart from there. · dc50fd2c
      Neil Brown authored
      Add a new field to the md superblock, in an used area, to record where
      resync was up-to on a clean shutdown while resync is active.  Restart from
      this point.
      
      The extra field is verified by having a second copy of the event counter.
      If the second event counter is wrong, we ignore the extra field.
      
      This patch thanks to  Angus Sawyer <angus.sawyer@dsl.pipex.com>
      dc50fd2c
  21. 21 Nov, 2002 1 commit
  22. 06 Nov, 2002 3 commits
    • Neil Brown's avatar
      [PATCH] kNFSd: Convert readlink to use a separate page for returning symlink contents. · 3a689637
      Neil Brown authored
      This allows NFSv3 to manage 4096byte symlinks.
      
      Also remove now-unused svcbuf_reserver function.
      
      This was used to reserve space in output buffer
      for 'data', but now this is stored in separate page.
      3a689637
    • Neil Brown's avatar
      [PATCH] md: Fix another two bug in raid5 · 571f3078
      Neil Brown authored
       A partial block write over a block on a failed device
       would need to pre-read that block, which means pre-read all
       blocks in stripe and generate that block.  But the generate-block
       code never checked for this possibility, so it wouldn't happen.
      571f3078
    • Neil Brown's avatar
      [PATCH] md: Fix bug in raid5 · a531b8fc
      Neil Brown authored
      When analysing a stripe in handle_stripe we set bits
       R5_Wantread or R5_Wantwrite
      to indicate if a read or write is needed.  We don't actually schedule the
      IO immediately as this is done under a spinlock (sh->lock) and
      generic_make_request can block.  Instead we check these bits after
      the lock has been lifted and then schedule the IO.
      
      But once the lock has been lifted we aren't safe against multiple
      access, and it is possible that the IO will be scheduled never, or twice.
      
      So, we use test_and_clear to check and potentially schedule the IO.
      
      This wasn't a problem in 2.4 because the equivalent information was
      stored on the stack instead of in the stripe.
      
      We also make sure bi_io_vec[0] has correct values as a previous
      call to generic_make_request may have changed them.
      a531b8fc
  23. 09 Oct, 2002 2 commits
    • Andrew Morton's avatar
      [PATCH] 64-bit sector_t - remove udivdi3, use sector_div() · a2b12f37
      Andrew Morton authored
      From Peter Chubb
      
      Get rid of need for GCC _udivdi3 and _umoddi3 helper functions
       - use sector_div more aggressively.
      a2b12f37
    • Andrew Morton's avatar
      [PATCH] 64-bit sector_t - driver changes · 6179fd18
      Andrew Morton authored
      From Peter Chubb
      
      Compaq Smart array sector_t cleanup: prepare for possible 64-bit sector_t
      
      Clean up loop device to allow huge backing files.
      
      MD transition to 64-bit sector_t.
       - Hold sizes and offsets as sector_t not int;
       - use 64-bit arithmetic if necessary to map block-in-raid to zone
         and block-in-zone
      6179fd18
  24. 30 Sep, 2002 1 commit
    • Jens Axboe's avatar
      [PATCH] raid5 BIO_UPTODATE set · ae5f1b4f
      Jens Axboe authored
      These days we only require a clear of BIO_UPTODATE on -EIO, we don't set
      it on success. This breaks raid5. It appears to clear BIO_UPTODATE fine
      but doesn't start out with it set.
      ae5f1b4f
  25. 18 Sep, 2002 1 commit
  26. 12 Sep, 2002 1 commit