• Naohiro Aota's avatar
    btrfs: zoned: implement copying for zoned device-replace · de17addc
    Naohiro Aota authored
    This is 3/4 patch to implement device-replace on zoned filesystems.
    
    This commit implements copying. To do this, it tracks the write pointer
    during the device replace process. As device-replace's copy process is
    smart enough to only copy used extents on the source device, we have to
    fill the gap to honor the sequential write requirement in the target
    device.
    
    The device-replace process on zoned filesystems must copy or clone all
    the extents in the source device exactly once. So, we need to ensure
    allocations started just before the dev-replace process to have their
    corresponding extent information in the B-trees.
    finish_extent_writes_for_zoned() implements that functionality, which
    basically is the removed code in the commit 042528f8 ("Btrfs: fix
    block group remaining RO forever after error during device replace").
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    de17addc
zoned.c 34.3 KB