mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
drbd: Fix: drbd_bitmap_io does not return an enum determine_dev_size
I guess bitmap I/O errors are supposed to cause drbd_determin_dev_size to return dev_size_error. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
2c46407d24
commit
24dccabb39
@ -643,11 +643,17 @@ enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *mdev, enum dds_
|
|||||||
|| prev_size != mdev->ldev->md.md_size_sect;
|
|| prev_size != mdev->ldev->md.md_size_sect;
|
||||||
|
|
||||||
if (la_size_changed || md_moved) {
|
if (la_size_changed || md_moved) {
|
||||||
|
int err;
|
||||||
|
|
||||||
drbd_al_shrink(mdev); /* All extents inactive. */
|
drbd_al_shrink(mdev); /* All extents inactive. */
|
||||||
dev_info(DEV, "Writing the whole bitmap, %s\n",
|
dev_info(DEV, "Writing the whole bitmap, %s\n",
|
||||||
la_size_changed && md_moved ? "size changed and md moved" :
|
la_size_changed && md_moved ? "size changed and md moved" :
|
||||||
la_size_changed ? "size changed" : "md moved");
|
la_size_changed ? "size changed" : "md moved");
|
||||||
rv = drbd_bitmap_io(mdev, &drbd_bm_write, "size changed"); /* does drbd_resume_io() ! */
|
err = drbd_bitmap_io(mdev, &drbd_bm_write, "size changed"); /* does drbd_resume_io() ! */
|
||||||
|
if (err) {
|
||||||
|
rv = dev_size_error;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
drbd_md_mark_dirty(mdev);
|
drbd_md_mark_dirty(mdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user