diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2014-04-28 18:43:20 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-04-30 13:46:54 -0600 |
commit | 88ea685d33c75932fe90ed0b5d2cf68845462876 (patch) | |
tree | c268da259166a94fc22e1738e14b33133d778948 /drivers/block/drbd/drbd_main.c | |
parent | e82998743385ca861b9ec919eb2ba8177ce72180 (diff) | |
download | op-kernel-dev-88ea685d33c75932fe90ed0b5d2cf68845462876.zip op-kernel-dev-88ea685d33c75932fe90ed0b5d2cf68845462876.tar.gz |
drbd: Do not BUG() when connection breaks in a special way
When a 'cluster wide' disconnect executes, the result comes back
from the peer, and immediately after that the connection breaks
then _conn_rq_cond() reported back SS_CW_SUCCESS.
Therefore _conn_request_state() calls conn_set_state(), which
has a BUG() in it.
The BUG() is hit because conn_is_valid_transition() does not like
the transaction. Which goes back to is_valid_soft_transition()
returning SS_OUTDATE_WO_CONN.
This fix is to consider an error reported by is_valid_soft_transition()
even when the peer agreed to the transaction.
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>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
0 files changed, 0 insertions, 0 deletions