1. 07 2月, 2008 1 次提交
    • N
      md: support 'external' metadata for md arrays · e691063a
      NeilBrown 提交于
      - Add a state flag 'external' to indicate that the metadata is managed
        externally (by user-space) so important changes need to be
        left of user-space to handle.
        Alternates are non-persistant ('none') where there is no stable metadata -
        after the  array is stopped there is no record of it's status - and
        internal which can be version 0.90 or version 1.x
        These are selected by writing to the 'metadata' attribute.
      
      - move the updating of superblocks (sync_sbs) to after we have checked if
        there are any superblocks or not.
      
      - New array state 'write_pending'.  This means that the metadata records
        the array as 'clean', but a write has been requested, so the metadata has
        to be updated to record a 'dirty' array before the write can continue.
        This change is reported to md by writing 'active' to the array_state
        attribute.
      
      - tidy up marking of sb_dirty:
         - don't set sb_dirty when resync finishes as md_check_recovery
           calls md_update_sb when the sync thread finishes anyway.
         - Don't set sb_dirty in multipath_run as the array might not be dirty.
         - don't mark superblock dirty when switching to 'clean' if there
           is no internal superblock (if external, userspace can choose to
           update the superblock whenever it chooses to).
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e691063a
  2. 25 1月, 2008 6 次提交
  3. 09 11月, 2007 1 次提交
  4. 20 10月, 2007 1 次提交
  5. 17 10月, 2007 3 次提交
  6. 16 10月, 2007 1 次提交
  7. 13 10月, 2007 1 次提交
  8. 10 10月, 2007 1 次提交
  9. 24 7月, 2007 1 次提交
  10. 18 7月, 2007 5 次提交
  11. 13 7月, 2007 1 次提交
    • D
      xor: make 'xor_blocks' a library routine for use with async_tx · 685784aa
      Dan Williams 提交于
      The async_tx api tries to use a dma engine for an operation, but will fall
      back to an optimized software routine otherwise.  Xor support is
      implemented using the raid5 xor routines.  For organizational purposes this
      routine is moved to a common area.
      
      The following fixes are also made:
      * rename xor_block => xor_blocks, suggested by Adrian Bunk
      * ensure that xor.o initializes before md.o in the built-in case
      * checkpatch.pl fixes
      * mark calibrate_xor_blocks __init, Adrian Bunk
      
      Cc: Adrian Bunk <bunk@stusta.de>
      Cc: NeilBrown <neilb@suse.de>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      685784aa
  12. 24 5月, 2007 1 次提交
  13. 11 5月, 2007 1 次提交
    • N
      md: improve the is_mddev_idle test · 435b71be
      NeilBrown 提交于
      During a 'resync' or similar activity, md checks if the devices in the
      array are otherwise active and winds back resync activity when they are.
      This test in done in is_mddev_idle, and it is somewhat fragile - it
      sometimes thinks there is non-sync io when there isn't.
      
      The test compares the total sectors of io (disk_stat_read) with the sectors
      of resync io (disk->sync_io).  This has problems because total sectors gets
      updated when a request completes, while resync io gets updated when the
      request is submitted.  The time difference can cause large differenced
      between the two which do not actually imply non-resync activity.  The test
      currently allows for some fuzz (+/- 4096) but there are some cases when it
      is not enough.
      
      The test currently looks for any (non-fuzz) difference, either positive or
      negative.  This clearly is not needed.  Any non-sync activity will cause
      the total sectors to grow faster than the sync_io count (never slower) so
      we only need to look for a positive differences.
      
      If we do this then the amount of in-flight sync io will never cause the
      appearance of non-sync IO.  Once enough non-sync IO to worry about starts
      happening, resync will be slowed down and the measurements will thus be
      more precise (as there is less in-flight) and control of resync will still
      be suitably responsive.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      435b71be
  14. 10 5月, 2007 7 次提交
  15. 08 5月, 2007 1 次提交
  16. 05 4月, 2007 1 次提交
  17. 28 3月, 2007 2 次提交
  18. 02 3月, 2007 3 次提交
  19. 15 2月, 2007 2 次提交