Index: src/drbd/drbd_nl.c =================================================================== --- src/drbd/drbd_nl.c (revision 20610) +++ src/drbd/drbd_nl.c (working copy) @@ -1688,7 +1688,7 @@ atomic_t drbd_nl_seq = ATOMIC_INIT(2); // two. -void drbd_bcast_state(drbd_dev *mdev) +void drbd_bcast_state(drbd_dev *mdev, drbd_state_t state) { char buffer[sizeof(struct cn_msg)+ sizeof(struct drbd_nl_cfg_reply)+ @@ -1700,7 +1700,7 @@ // WARN("drbd_bcast_state() got called\n"); - tl = get_state_to_tags(mdev,(struct get_state*)&mdev->state,tl); + tl = get_state_to_tags(mdev,(struct get_state*)&state,tl); *tl++ = TT_END; /* Close the tag list */ cn_reply->id.idx = CN_IDX_DRBD; Index: src/drbd/drbd_main.c =================================================================== --- src/drbd/drbd_main.c (revision 20610) +++ src/drbd/drbd_main.c (working copy) @@ -872,7 +872,7 @@ } /* Inform userspace about the change... */ - drbd_bcast_state(mdev); + drbd_bcast_state(mdev, ns); /* Here we have the actions that are performed after a state change. This function might sleep */ Index: src/drbd/drbd_int.h =================================================================== --- src/drbd/drbd_int.h (revision 20610) +++ src/drbd/drbd_int.h (working copy) @@ -1415,7 +1415,7 @@ void drbd_nl_cleanup(void); int __init drbd_nl_init(void); -void drbd_bcast_state(drbd_dev *mdev); +void drbd_bcast_state(drbd_dev *mdev, drbd_state_t state); void drbd_bcast_sync_progress(drbd_dev *mdev); void drbd_bcast_split_brain(drbd_dev *mdev,int flag);