diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2011-07-15 12:44:26 -0400 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2012-11-08 10:57:57 -0500 |
commit | 3fb4746d8d3f9c3e48f7fc65ed24bc54bb8032aa (patch) | |
tree | 33b36532b3ae99ea01b31f4a845d554049150791 /drivers/block/drbd/drbd_state.c | |
parent | 97af09d51ee1ca4a8687b4c3492a1739384d5a42 (diff) |
drbd: Consider that the no-data-condition could be in connected state
...when the peer has inconsistent data. In that case we failed to
clear the susp_nod flag. When the local disk was attached again
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_state.c')
-rw-r--r-- | drivers/block/drbd/drbd_state.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c index 1763357a065a..60371ba90fb1 100644 --- a/drivers/block/drbd/drbd_state.c +++ b/drivers/block/drbd/drbd_state.c | |||
@@ -1180,7 +1180,8 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, | |||
1180 | if (os.conn < C_CONNECTED && conn_lowest_conn(mdev->tconn) >= C_CONNECTED) | 1180 | if (os.conn < C_CONNECTED && conn_lowest_conn(mdev->tconn) >= C_CONNECTED) |
1181 | what = RESEND; | 1181 | what = RESEND; |
1182 | 1182 | ||
1183 | if (os.disk == D_ATTACHING && conn_lowest_disk(mdev->tconn) > D_ATTACHING) | 1183 | if ((os.disk == D_ATTACHING || os.disk == D_NEGOTIATING) && |
1184 | conn_lowest_disk(mdev->tconn) > D_NEGOTIATING) | ||
1184 | what = RESTART_FROZEN_DISK_IO; | 1185 | what = RESTART_FROZEN_DISK_IO; |
1185 | 1186 | ||
1186 | if (what != NOTHING) { | 1187 | if (what != NOTHING) { |