From: Lars Ellenberg <lars.ellenb...@linbit.com>

When re-attaching the local backend device to a C_STANDALONE D_DISKLESS
R_PRIMARY with OND_SUSPEND_IO, we may only resume IO if we recognize the
backend that is being attached as D_UP_TO_DATE.

Signed-off-by: Philipp Reisner <philipp.reis...@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenb...@linbit.com>
---
 drivers/block/drbd/drbd_state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index 59c6467..24422e8 100644
--- a/drivers/block/drbd/drbd_state.c
+++ b/drivers/block/drbd/drbd_state.c
@@ -1675,7 +1675,7 @@ static void after_state_ch(struct drbd_device *device, 
union drbd_state os,
                        what = RESEND;
 
                if ((os.disk == D_ATTACHING || os.disk == D_NEGOTIATING) &&
-                   conn_lowest_disk(connection) > D_NEGOTIATING)
+                   conn_lowest_disk(connection) == D_UP_TO_DATE)
                        what = RESTART_FROZEN_DISK_IO;
 
                if (resource->susp_nod && what != NOTHING) {
-- 
1.9.1

Reply via email to