1. 22 May, 2012 36 commits
  2. 20 May, 2012 4 commits
    • NeilBrown's avatar
      md/raid10: split out interpretation of layout to separate function. · deb200d0
      NeilBrown authored
      We will soon be interpreting the layout (and chunksize etc) from
      multiple places to support reshape.  So split it out into separate
      function.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      deb200d0
    • NeilBrown's avatar
      md/raid10: Introduce 'prev' geometry to support reshape. · f8c9e74f
      NeilBrown authored
      When RAID10 supports reshape it will need a 'previous' and a 'current'
      geometry, so introduce that here.
      Use the 'prev' geometry when before the reshape_position, and the
      current 'geo' when beyond it.  At other times, use both as
      appropriate.
      
      For now, both are identical (And reshape_position is never set).
      
      When we use the 'prev' geometry, we must use the old data_offset.
      When we use the current (And a reshape is happening) we must use
      the new_data_offset.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      f8c9e74f
    • NeilBrown's avatar
      md: use resync_max_sectors for reshape as well as resync. · c804cdec
      NeilBrown authored
      Some resync type operations need to act on the address space of the
      device, others on the address space of the array.
      
      This only affects RAID10, so it sets resync_max_sectors to the array
      size (it defaults to the device size), and that is currently used for
      resync only.  However reshape of a RAID10 must be done against the
      array size, not device size, so change code to use resync_max_sectors
      for both the resync and the reshape cases.
      This does not affect RAID5 or RAID1, just RAID10.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      c804cdec
    • NeilBrown's avatar
      md: teach sync_page_io about new_data_offset. · 1fdd6fc9
      NeilBrown authored
      Some code in raid1 and raid10 use sync_page_io to
      read/write pages when responding to read errors.
      As we will shortly support changing data_offset for
      raid10, this function must understand new_data_offset.
      
      So add that understanding.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      1fdd6fc9