• Yu Kuai's avatar
    md: remove redundant check of 'mddev->sync_thread' · 61c90765
    Yu Kuai authored
    The lifetime of sync_thread:
    
    1) Set MD_RECOVERY_NEEDED and wake up daemon thread (by ioctl/sysfs or
       other events);
    2) Daemon thread woke up, md_check_recovery() found that
       MD_RECOVERY_NEEDED is set:
       a) try to grab reconfig_mutex;
       b) set MD_RECOVERY_RUNNING;
       c) clear MD_RECOVERY_NEEDED, and then queue sync_work;
    3) md_start_sync() choose sync_action, then register sync_thread;
    4) md_do_sync() is done, set MD_RECOVERY_DONE and wake up daemon thread;
    5) Daemon thread woke up, md_check_recovery() found that
       MD_RECOVERY_DONE is set:
       a) try to grab reconfig_mutex;
       b) unregister sync_thread;
       c) clear MD_RECOVERY_RUNNING and MD_RECOVERY_DONE;
    
    Hence there is no such case that MD_RECOVERY_RUNNING is not set, while
    sync_thread is registered.
    Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
    Signed-off-by: default avatarSong Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20231228125553.2697765-2-yukuai1@huaweicloud.com
    61c90765
raid5.c 253 KB