linux/drivers/block/drbd
Lars Ellenberg 8011e24909 drbd: fix error path during resize
In case the lower level device size changed, but some other internal
details of the resize did not work out, drbd_determine_dev_size() would
try to restore the previous settings, trusting
drbd_md_set_sector_offsets() to "do the right thing", but overlooked
that this internally may set the meta data base offset based on device size.

This could end up with incomplete on-disk meta data layout change, and
ultimately lead to data corruption (if the failure was not noticed or
ignored by the operator, and other things go wrong as well).

Just remember all meta data related offsets/sizes,
and on error restore them all.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-11-25 09:22:03 -07:00
..
drbd_actlog.c drbd: avoid potential deadlock during handshake 2015-11-25 09:22:03 -07:00
drbd_bitmap.c drbd: use bitmap_weight() helper, don't open code 2015-11-25 09:22:02 -07:00
drbd_debugfs.c drbd: debugfs: expose ed_data_gen_id 2015-11-25 09:22:02 -07:00
drbd_debugfs.h
drbd_int.h drbd: avoid potential deadlock during handshake 2015-11-25 09:22:03 -07:00
drbd_interval.c
drbd_interval.h
drbd_main.c drbd: don't block forever in disconnect during resync if fencing=r-a-stonith 2015-11-25 09:22:02 -07:00
drbd_nl.c drbd: fix error path during resize 2015-11-25 09:22:03 -07:00
drbd_nla.c
drbd_nla.h
drbd_proc.c drbd: Move enum write_ordering_e to drbd.h 2015-11-25 09:22:00 -07:00
drbd_protocol.h drbd: Create a dedicated workqueue for sending acks on the control connection 2015-11-25 09:22:01 -07:00
drbd_receiver.c drbd: use resource name in workqueue 2015-11-25 09:22:02 -07:00
drbd_req.c drbd: fix "endless" transfer log walk in protocol A 2015-11-25 09:22:03 -07:00
drbd_req.h drbd: De-inline drbd_should_do_remote() and drbd_should_send_out_of_sync() 2015-11-25 09:22:00 -07:00
drbd_state_change.h drbd: Backport the "events2" command 2015-11-25 09:22:00 -07:00
drbd_state.c drbd: make suspend_io() / resume_io() must be thread and recursion safe 2015-11-25 09:22:03 -07:00
drbd_state.h drbd: Fix locking across all resources 2015-11-25 09:22:00 -07:00
drbd_strings.c
drbd_strings.h
drbd_vli.h
drbd_worker.c drbd: make drbd known to lsblk: use bd_link_disk_holder 2015-11-25 09:22:02 -07:00
Kconfig
Makefile