]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit7dcb9fde4fba9b0c61fd3a2f20d02cf29d852286
tree322f0fd2d0c863d44d4637ad22809928a763adea
parentf01ca6162e470fa121e499a22bb03bd1d3343804
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: 080c9565d239 ('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