diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2012-04-24 10:23:13 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-04-24 10:23:13 +1000 |
commit | a9ad8526bb1af0741a5c0e01155dac08e7bdde60 (patch) | |
tree | 4e82b35b644eab0aacc6c7d16b2cb7794f106cb5 | |
parent | afbaa90b80b1ec66e5137cc3824746bfdf559b18 (diff) | |
download | lwn-a9ad8526bb1af0741a5c0e01155dac08e7bdde60.tar.gz lwn-a9ad8526bb1af0741a5c0e01155dac08e7bdde60.zip |
DM RAID: Use safe version of rdev_for_each
Fix segfault caused by using rdev_for_each instead of rdev_for_each_safe
Commit dafb20fa34320a472deb7442f25a0c086e0feb33 mistakenly replaced a safe
iterator with an unsafe one when making some macro changes.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | drivers/md/dm-raid.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index b0ba52459ed7..68965e663248 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -859,7 +859,7 @@ static int analyse_superblocks(struct dm_target *ti, struct raid_set *rs) int ret; unsigned redundancy = 0; struct raid_dev *dev; - struct md_rdev *rdev, *freshest; + struct md_rdev *rdev, *tmp, *freshest; struct mddev *mddev = &rs->md; switch (rs->raid_type->level) { @@ -877,7 +877,7 @@ static int analyse_superblocks(struct dm_target *ti, struct raid_set *rs) } freshest = NULL; - rdev_for_each(rdev, mddev) { + rdev_for_each_safe(rdev, tmp, mddev) { if (!rdev->meta_bdev) continue; |