md/raid5: fix spares errors about rcu usage
commit 2314c2e3a70521f055dd011245dccf6fd97c7ee0 upstream. As commit ad8606702f26 ("md/raid5: remove rcu protection to access rdev from conf") explains, rcu protection can be removed, however, there are three places left, there won't be any real problems. drivers/md/raid5.c:8071:24: error: incompatible types in comparison expression (different address spaces): drivers/md/raid5.c:8071:24: struct md_rdev [noderef] __rcu * drivers/md/raid5.c:8071:24: struct md_rdev * drivers/md/raid5.c:7569:25: error: incompatible types in comparison expression (different address spaces): drivers/md/raid5.c:7569:25: struct md_rdev [noderef] __rcu * drivers/md/raid5.c:7569:25: struct md_rdev * drivers/md/raid5.c:7573:25: error: incompatible types in comparison expression (different address spaces): drivers/md/raid5.c:7573:25: struct md_rdev [noderef] __rcu * drivers/md/raid5.c:7573:25: struct md_rdev * Fixes: ad8606702f26 ("md/raid5: remove rcu protection to access rdev from conf") Cc: stable@vger.kernel.org Signed-off-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20240615085143.1648223-1-yukuai1@huaweicloud.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
794964ac11
commit
e20f9e50dc
@ -155,7 +155,7 @@ static int raid6_idx_to_slot(int idx, struct stripe_head *sh,
|
||||
return slot;
|
||||
}
|
||||
|
||||
static void print_raid5_conf (struct r5conf *conf);
|
||||
static void print_raid5_conf(struct r5conf *conf);
|
||||
|
||||
static int stripe_operations_active(struct stripe_head *sh)
|
||||
{
|
||||
@ -7580,11 +7580,11 @@ static struct r5conf *setup_conf(struct mddev *mddev)
|
||||
if (test_bit(Replacement, &rdev->flags)) {
|
||||
if (disk->replacement)
|
||||
goto abort;
|
||||
RCU_INIT_POINTER(disk->replacement, rdev);
|
||||
disk->replacement = rdev;
|
||||
} else {
|
||||
if (disk->rdev)
|
||||
goto abort;
|
||||
RCU_INIT_POINTER(disk->rdev, rdev);
|
||||
disk->rdev = rdev;
|
||||
}
|
||||
|
||||
if (test_bit(In_sync, &rdev->flags)) {
|
||||
@ -8066,7 +8066,7 @@ static void raid5_status(struct seq_file *seq, struct mddev *mddev)
|
||||
seq_printf (seq, "]");
|
||||
}
|
||||
|
||||
static void print_raid5_conf (struct r5conf *conf)
|
||||
static void print_raid5_conf(struct r5conf *conf)
|
||||
{
|
||||
struct md_rdev *rdev;
|
||||
int i;
|
||||
@ -8080,15 +8080,13 @@ static void print_raid5_conf (struct r5conf *conf)
|
||||
conf->raid_disks,
|
||||
conf->raid_disks - conf->mddev->degraded);
|
||||
|
||||
rcu_read_lock();
|
||||
for (i = 0; i < conf->raid_disks; i++) {
|
||||
rdev = rcu_dereference(conf->disks[i].rdev);
|
||||
rdev = conf->disks[i].rdev;
|
||||
if (rdev)
|
||||
pr_debug(" disk %d, o:%d, dev:%pg\n",
|
||||
i, !test_bit(Faulty, &rdev->flags),
|
||||
rdev->bdev);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
static int raid5_spare_active(struct mddev *mddev)
|
||||
|
Loading…
x
Reference in New Issue
Block a user