md/raid1: remove rcu protection to access rdev from conf
mainline inclusion from mainline-next-20231220 commit 2d32777d60de81aa020a2431567020af26564c71 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8T02O Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2d32777d60de81aa020a2431567020af26564c71 -------------------------------- Because it's safe to accees rdev from conf: - If any spinlock is held, because synchronize_rcu() from md_kick_rdev_from_array() will prevent 'rdev' to be freed until spinlock is released; - If 'reconfig_lock' is held, because rdev can't be added or removed from array; - If there is normal IO inflight, because mddev_suspend() will prevent rdev to be added or removed from array; - If there is sync IO inflight, because 'MD_RECOVERY_RUNNING' is checked in remove_and_add_spares(). And these will cover all the scenarios in raid1. Signed-off-by:Yu Kuai <yukuai3@huawei.com> Signed-off-by:
Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20231125081604.3939938-4-yukuai1@huaweicloud.com Signed-off-by:
Li Nan <linan122@huawei.com>
Loading
Please sign in to comment