2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-28 23:23:55 +08:00
linux-next/drivers/block/drbd
Lars Ellenberg a324896b17 drbd: do not reset rs_pending_cnt too early
Fix asserts like
  block drbd0: in got_BlockAck:4634: rs_pending_cnt = -35 < 0 !

We reset the resync lru cache and related information (rs_pending_cnt),
once we successfully finished a resync or online verify, or if the
replication connection is lost.

We also need to reset it if a resync or online verify is aborted
because a lower level disk failed.

In that case the replication link is still established,
and we may still have packets queued in the network buffers
which want to touch rs_pending_cnt.

We do not have any synchronization mechanism to know for sure when all
such pending resync related packets have been drained.

To avoid this counter to go negative (and violate the ASSERT that it
will always be >= 0), just do not reset it when we lose a disk.

It is good enough to make sure it is re-initialized before the next
resync can start: reset it when we re-attach a disk.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2012-11-08 16:58:40 +01:00
..
drbd_actlog.c drbd: differentiate between normal and forced detach 2012-11-08 16:58:39 +01:00
drbd_bitmap.c drbd: differentiate between normal and forced detach 2012-11-08 16:58:39 +01:00
drbd_int.h drbd: report congestion if we are waiting for some userland callback 2012-11-08 16:58:39 +01:00
drbd_interval.c drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_interval.h drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_main.c drbd: report congestion if we are waiting for some userland callback 2012-11-08 16:58:39 +01:00
drbd_nl.c drbd: do not reset rs_pending_cnt too early 2012-11-08 16:58:40 +01:00
drbd_nla.c drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_nla.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_proc.c drbd: reset congestion information before reporting it in /proc/drbd 2012-11-08 16:58:39 +01:00
drbd_receiver.c drbd: remove struct drbd_tl_epoch objects (barrier works) 2012-11-08 16:58:35 +01:00
drbd_req.c drbd: differentiate between normal and forced detach 2012-11-08 16:58:39 +01:00
drbd_req.h drbd: allow read requests to be retried after force-detach 2012-11-08 16:58:37 +01:00
drbd_state.c drbd: do not reset rs_pending_cnt too early 2012-11-08 16:58:40 +01:00
drbd_state.h drbd: Improved logging of state changes 2012-11-08 16:45:06 +01:00
drbd_strings.c drbd: Allow volumes to become primary only on one side 2012-11-04 00:16:31 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: do not reset rs_pending_cnt too early 2012-11-08 16:58:40 +01:00
drbd_wrappers.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00