• Anand Jain's avatar
    btrfs: replace: drop assert for suspended replace · 59a39919
    Anand Jain authored
    If the filesystem mounts with the replace-operation in a suspended state
    and try to cancel the suspended replace-operation, we hit the assert. The
    assert came from the commit fe97e2e1 ("btrfs: dev-replace: replace's
    scrub must not be running in suspended state") that was actually not
    required. So just remove it.
    
     $ mount /dev/sda5 /btrfs
    
        BTRFS info (device sda5): cannot continue dev_replace, tgtdev is missing
        BTRFS info (device sda5): you may cancel the operation after 'mount -o degraded'
    
     $ mount -o degraded /dev/sda5 /btrfs <-- success.
    
     $ btrfs replace cancel /btrfs
    
        kernel: assertion failed: ret != -ENOTCONN, in fs/btrfs/dev-replace.c:1131
        kernel: ------------[ cut here ]------------
        kernel: kernel BUG at fs/btrfs/ctree.h:3750!
    
    After the patch:
    
     $ btrfs replace cancel /btrfs
    
        BTRFS info (device sda5): suspended dev_replace from /dev/sda5 (devid 1) to <missing disk> canceled
    
    Fixes: fe97e2e1 ("btrfs: dev-replace: replace's scrub must not be running in suspended state")
    CC: stable@vger.kernel.org # 5.0+
    Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    59a39919
dev-replace.c 38 KB