Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 346254
b: refs/heads/master
c: 892fdd1
h: refs/heads/master
v: v3
  • Loading branch information
Philipp Reisner committed Nov 9, 2012
1 parent 4b2cc53 commit 46f3f5c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 88f79ec4ae22a82d7b9a0cd4c9f3ee1def2a382c
refs/heads/master: 892fdd1aee35803bfa41ccf4df850ddb70f0811c
18 changes: 11 additions & 7 deletions trunk/drivers/block/drbd/drbd_state.c
Original file line number Diff line number Diff line change
Expand Up @@ -1187,21 +1187,25 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os,
state change. This function might sleep */

if (ns.susp_nod) {
struct drbd_tconn *tconn = mdev->tconn;
enum drbd_req_event what = NOTHING;

if (os.conn < C_CONNECTED && conn_lowest_conn(mdev->tconn) >= C_CONNECTED)
spin_lock_irq(&tconn->req_lock);
if (os.conn < C_CONNECTED && conn_lowest_conn(tconn) >= C_CONNECTED)
what = RESEND;

if ((os.disk == D_ATTACHING || os.disk == D_NEGOTIATING) &&
conn_lowest_disk(mdev->tconn) > D_NEGOTIATING)
conn_lowest_disk(tconn) > D_NEGOTIATING)
what = RESTART_FROZEN_DISK_IO;

if (what != NOTHING) {
spin_lock_irq(&mdev->tconn->req_lock);
_tl_restart(mdev->tconn, what);
_drbd_set_state(_NS(mdev, susp_nod, 0), CS_VERBOSE, NULL);
spin_unlock_irq(&mdev->tconn->req_lock);
if (tconn->susp_nod && what != NOTHING) {
_tl_restart(tconn, what);
_conn_request_state(tconn,
(union drbd_state) { { .susp_nod = 1 } },
(union drbd_state) { { .susp_nod = 0 } },
CS_VERBOSE);
}
spin_unlock_irq(&tconn->req_lock);
}

if (ns.susp_fen) {
Expand Down

0 comments on commit 46f3f5c

Please sign in to comment.