md/raid10: Remove unnecessary rcu_dereference in raid10_handle_discard
authorXiao Ni <xni@redhat.com>
Wed, 18 Aug 2021 05:57:48 +0000 (13:57 +0800)
committerSong Liu <songliubraving@fb.com>
Thu, 26 Aug 2021 16:04:15 +0000 (09:04 -0700)
commit46d4703b1db4c86ab5acb2331b10df999f005e8e
tree322f0fd2d0c863d44d4637ad22809928a763adea
parent7ee656c3ac3d047b4cf1269f83ac9d6c0bba916b
md/raid10: Remove unnecessary rcu_dereference in raid10_handle_discard

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: d30588b2731f ('md/raid10: improve raid10 discard request')
Signed-off-by: Xiao Ni <xni@redhat.com>
Acked-by: Guoqing Jiang <guoqing.jiang@linux.dev>
Signed-off-by: Song Liu <songliubraving@fb.com>
drivers/md/raid10.c