• NeilBrown's avatar
    md: use MD_RECOVERY_INTR instead of kthread_should_stop in resync thread. · c91abf5a
    NeilBrown authored
    We currently use kthread_should_stop() in various places in the
    sync/reshape code to abort early.
    However some places set MD_RECOVERY_INTR but don't immediately call
    md_reap_sync_thread() (and we will shortly get another one).
    When this happens we are relying on md_check_recovery() to reap the
    thread and that only happen when it finishes normally.
    So MD_RECOVERY_INTR must lead to a normal finish without the
    kthread_should_stop() test.
    
    So replace all relevant tests, and be more careful when the thread is
    interrupted not to acknowledge that latest step in a reshape as it may
    not be fully committed yet.
    
    Also add a test on MD_RECOVERY_INTR in the 'is_mddev_idle' loop
    so we don't wait have to wait for the speed to drop before we can abort.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    c91abf5a
raid10.c 131 KB