diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2013-03-27 17:08:40 +0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-03-28 20:10:25 +0400 |
commit | 2bd5ed5d6713594eb2b4d234d01217d506279c7d (patch) | |
tree | afdeb5ec00f0103f8bb43fea389e3cb18ee958c3 /drivers/block/drbd/drbd_strings.c | |
parent | bb45185de2e90af63a7bc48855de6f870cc216fc (diff) | |
download | linux-2bd5ed5d6713594eb2b4d234d01217d506279c7d.tar.xz |
drbd: Fix disconnect to keep the peer disk state if connection breaks during operation
The issue was that if the connection broke while we did the
gracefull state change to C_DISCONNECTING (C_TEARDOWN), then
we returned a success code from the state engine. (SS_CW_NO_NEED)
The result of that is that we missed to call the fence-peer
script in such a case.
Fixed that by introducing a new error code (SS_OUTDATE_WO_CONN).
This one should never reach back into user space.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/drbd/drbd_strings.c')
-rw-r--r-- | drivers/block/drbd/drbd_strings.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_strings.c b/drivers/block/drbd/drbd_strings.c index 9a664bd27404..58e08ff2b2ce 100644 --- a/drivers/block/drbd/drbd_strings.c +++ b/drivers/block/drbd/drbd_strings.c @@ -89,6 +89,7 @@ static const char *drbd_state_sw_errors[] = { [-SS_LOWER_THAN_OUTDATED] = "Disk state is lower than outdated", [-SS_IN_TRANSIENT_STATE] = "In transient state, retry after next state change", [-SS_CONCURRENT_ST_CHG] = "Concurrent state changes detected and aborted", + [-SS_OUTDATE_WO_CONN] = "Need a connection for a graceful disconnect/outdate peer", [-SS_O_VOL_PEER_PRI] = "Other vol primary on peer not allowed by config", }; |