• Miao Xie's avatar
    Btrfs, replace: write dirty pages into the replace target device · 2c8cdd6e
    Miao Xie authored
    The implementation is simple:
    - In order to avoid changing the code logic of btrfs_map_bio and
      RAID56, we add the stripes of the replace target devices at the
      end of the stripe array in btrfs bio, and we sort those target
      device stripes in the array. And we keep the number of the target
      device stripes in the btrfs bio.
    - Except write operation on RAID56, all the other operation don't
      take the target device stripes into account.
    - When we do write operation, we read the data from the common devices
      and calculate the parity. Then write the dirty data and new parity
      out, at this time, we will find the relative replace target stripes
      and wirte the relative data into it.
    
    Note: The function that copying old data on the source device to
    the target device was implemented in the past, it is similar to
    the other RAID type.
    Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
    2c8cdd6e
raid56.c 64.6 KB