diff options
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index ab7c8e4a61f9..719943763391 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
@@ -215,7 +215,6 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, | |||
215 | /* choose a good rdev and read the page from there */ | 215 | /* choose a good rdev and read the page from there */ |
216 | 216 | ||
217 | mdk_rdev_t *rdev; | 217 | mdk_rdev_t *rdev; |
218 | struct list_head *tmp; | ||
219 | sector_t target; | 218 | sector_t target; |
220 | 219 | ||
221 | if (!page) | 220 | if (!page) |
@@ -223,7 +222,7 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, | |||
223 | if (!page) | 222 | if (!page) |
224 | return ERR_PTR(-ENOMEM); | 223 | return ERR_PTR(-ENOMEM); |
225 | 224 | ||
226 | rdev_for_each(rdev, tmp, mddev) { | 225 | list_for_each_entry(rdev, &mddev->disks, same_set) { |
227 | if (! test_bit(In_sync, &rdev->flags) | 226 | if (! test_bit(In_sync, &rdev->flags) |
228 | || test_bit(Faulty, &rdev->flags)) | 227 | || test_bit(Faulty, &rdev->flags)) |
229 | continue; | 228 | continue; |
@@ -964,9 +963,11 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start) | |||
964 | */ | 963 | */ |
965 | page = bitmap->sb_page; | 964 | page = bitmap->sb_page; |
966 | offset = sizeof(bitmap_super_t); | 965 | offset = sizeof(bitmap_super_t); |
967 | read_sb_page(bitmap->mddev, bitmap->offset, | 966 | if (!file) |
968 | page, | 967 | read_sb_page(bitmap->mddev, |
969 | index, count); | 968 | bitmap->offset, |
969 | page, | ||
970 | index, count); | ||
970 | } else if (file) { | 971 | } else if (file) { |
971 | page = read_page(file, index, bitmap, count); | 972 | page = read_page(file, index, bitmap, count); |
972 | offset = 0; | 973 | offset = 0; |