1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-23 00:20:52 -05:00
linux/drivers/md
Mikulas Patocka 9f3fe29d77 md: fix a suspicious RCU usage warning
RCU protection was removed in the commit 2d32777d60 ("raid1: remove rcu
protection to access rdev from conf").

However, the code in fix_read_error does rcu_dereference outside
rcu_read_lock - this triggers the following warning. The warning is
triggered by a LVM2 test shell/integrity-caching.sh.

This commit removes rcu_dereference.

=============================
WARNING: suspicious RCU usage
6.7.0 #2 Not tainted
-----------------------------
drivers/md/raid1.c:2265 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 2, debug_locks = 1
no locks held by mdX_raid1/1859.

stack backtrace:
CPU: 2 PID: 1859 Comm: mdX_raid1 Not tainted 6.7.0 #2
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x60/0x70
 lockdep_rcu_suspicious+0x153/0x1b0
 raid1d+0x1732/0x1750 [raid1]
 ? lock_acquire+0x9f/0x270
 ? finish_wait+0x3d/0x80
 ? md_thread+0xf7/0x130 [md_mod]
 ? lock_release+0xaa/0x230
 ? md_register_thread+0xd0/0xd0 [md_mod]
 md_thread+0xa0/0x130 [md_mod]
 ? housekeeping_test_cpu+0x30/0x30
 kthread+0xdc/0x110
 ? kthread_complete_and_exit+0x20/0x20
 ret_from_fork+0x28/0x40
 ? kthread_complete_and_exit+0x20/0x20
 ret_from_fork_asm+0x11/0x20
 </TASK>

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Fixes: ca294b34aa ("md/raid1: support read error check")
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/51539879-e1ca-fde3-b8b4-8934ddedcbc@redhat.com
2024-01-24 22:58:00 -08:00
..
bcache for-6.8/block-2024-01-08 2024-01-11 13:58:04 -08:00
persistent-data
dm-audit.c
dm-audit.h
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
dm-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
dm-cache-metadata.c Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
dm-cache-metadata.h
dm-cache-policy-internal.h
dm-cache-policy-smq.c
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c
dm-core.h
dm-crypt.c mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
dm-delay.c dm-delay: avoid duplicate logic 2023-11-17 14:41:14 -05:00
dm-dust.c
dm-ebs-target.c
dm-era-target.c
dm-exception-store.c
dm-exception-store.h
dm-flakey.c mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
dm-ima.c
dm-ima.h
dm-init.c
dm-integrity.c dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata() 2023-12-18 13:11:05 -05:00
dm-io-rewind.c
dm-io-tracker.h
dm-io.c
dm-ioctl.c
dm-kcopyd.c block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c
dm-log.c
dm-mpath.c
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-ps-historical-service-time.c
dm-ps-io-affinity.c
dm-ps-queue-length.c
dm-ps-round-robin.c
dm-ps-service-time.c
dm-raid.c dm-raid: delay flushing event_work() after reconfig_mutex is released 2023-12-18 13:05:21 -05:00
dm-raid1.c
dm-region-hash.c
dm-rq.c
dm-rq.h
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm-stats.c
dm-stats.h
dm-stripe.c
dm-switch.c
dm-sysfs.c
dm-table.c block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
dm-target.c
dm-thin-metadata.c
dm-thin-metadata.h
dm-thin.c
dm-uevent.c
dm-uevent.h
dm-unstripe.c
dm-verity-fec.c dm-verity: align struct dm_verity_fec_io properly 2023-11-29 12:58:06 -05:00
dm-verity-fec.h
dm-verity-loadpin.c
dm-verity-target.c dm verity: don't perform FEC for failed readahead IO 2023-11-29 12:55:31 -05:00
dm-verity-verify-sig.c
dm-verity-verify-sig.h
dm-verity.h dm-verity: align struct dm_verity_fec_io properly 2023-11-29 12:58:06 -05:00
dm-writecache.c
dm-zero.c
dm-zone.c
dm-zoned-metadata.c block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
dm-zoned-reclaim.c
dm-zoned-target.c block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
dm-zoned.h
dm.c bdev: rename freeze and thaw helpers 2023-11-18 14:59:23 +01:00
dm.h
Kconfig for-6.8/block-2024-01-08 2024-01-11 13:58:04 -08:00
Makefile md: Remove deprecated CONFIG_MD_FAULTY 2023-12-19 10:37:50 -08:00
md-autodetect.c md: Remove deprecated CONFIG_MD_LINEAR 2023-12-19 10:16:51 -08:00
md-bitmap.c
md-bitmap.h
md-cluster.c
md-cluster.h
md-linear.h
md-multipath.h
md.c for-6.8/block-2024-01-18 2024-01-18 18:22:40 -08:00
md.h md: remove flag RemoveSynchronized 2023-11-27 15:49:04 -08:00
raid0.c
raid0.h
raid1-10.c md: factor out a helper exceed_read_errors() to check read_errors 2023-12-15 15:22:15 -08:00
raid1.c md: fix a suspicious RCU usage warning 2024-01-24 22:58:00 -08:00
raid1.h
raid5-cache.c md/raid5: remove rcu protection to access rdev from conf 2023-11-27 15:49:05 -08:00
raid5-log.h
raid5-ppl.c md/raid5: remove rcu protection to access rdev from conf 2023-11-27 15:49:05 -08:00
raid5.c for-6.8/block-2024-01-08 2024-01-11 13:58:04 -08:00
raid5.h md/raid5: remove rcu protection to access rdev from conf 2023-11-27 15:49:05 -08:00
raid10.c md: factor out a helper exceed_read_errors() to check read_errors 2023-12-15 15:22:15 -08:00
raid10.h