• Xiao Ni's avatar
    md/raid10: Remove unnecessary rcu_dereference in raid10_handle_discard · 46d4703b
    Xiao Ni authored
    We are seeing the following warning in raid10_handle_discard.
    [  695.110751] =============================
    [  695.131439] WARNING: suspicious RCU usage
    [  695.151389] 4.18.0-319.el8.x86_64+debug #1 Not tainted
    [  695.174413] -----------------------------
    [  695.192603] drivers/md/raid10.c:1776 suspicious
    rcu_dereference_check() usage!
    [  695.225107] other info that might help us debug this:
    [  695.260940] rcu_scheduler_active = 2, debug_locks = 1
    [  695.290157] no locks held by mkfs.xfs/10186.
    
    In the first loop of function raid10_handle_discard. It already
    determines which disk need to handle discard request and add the
    rdev reference count rdev->nr_pending. So the conf->mirrors will
    not change until all bios come back from underlayer disks. It
    doesn't need to use rcu_dereference to get rdev.
    
    Cc: stable@vger.kernel.org
    Fixes: d30588b2 ('md/raid10: improve raid10 discard request')
    Signed-off-by: default avatarXiao Ni <xni@redhat.com>
    Acked-by: default avatarGuoqing Jiang <guoqing.jiang@linux.dev>
    Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
    46d4703b
raid10.c 145 KB