• NeilBrown's avatar
    md/raid1, raid10: don't recheck "Faulty" flag in read-balance. · 414e6b9a
    NeilBrown authored
    Re-checking the faulty flag here brings no value.
    The comment about "risk" refers to the risk that the device could
    be in the process of being removed by ->hot_remove_disk().
    However providing that the ->nr_pending count is incremented inside
    an rcu_read_locked() region, there is no risk of that happening.
    
    This is because the rdev pointer (in the personalities array) is set
    to NULL before synchronize_rcu(), and ->nr_pending is tested
    afterwards.  If the rcu_read_locked region happens before the
    synchronize_rcu(), the test will see that nr_pending has been incremented.
    If it happens afterwards, the rdev pointer will be NULL so there is nothing
    to increment.
    Signed-off-by: default avatarNeilBrown <neilb@suse.com>
    Signed-off-by: default avatarShaohua Li <shli@fb.com>
    414e6b9a
raid1.c 86.9 KB