diff options
author | Jens Axboe <jaxboe@fusionio.com> | 2011-06-30 10:10:50 +0200 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2011-06-30 10:10:50 +0200 |
commit | 7b28afe01ab6ffb5f152f47831b44933facd2328 (patch) | |
tree | a537d78f49fa1b959c9a453f459c1acd767a939f /drivers/block/drbd/drbd_receiver.c | |
parent | 726e99ab88db059fe1422e15376ae404f8c66eb4 (diff) | |
parent | 86e1e98e5c6b4edab97e2b058466ef553cfd878e (diff) |
Merge branch 'for-3.0-important' of git://git.drbd.org/linux-2.6-drbd into for-linus
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 25d32c5aa50..43beaca5317 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -4602,6 +4602,11 @@ int drbd_asender(struct drbd_thread *thi) dev_err(DEV, "meta connection shut down by peer.\n"); goto reconnect; } else if (rv == -EAGAIN) { + /* If the data socket received something meanwhile, + * that is good enough: peer is still alive. */ + if (time_after(mdev->last_received, + jiffies - mdev->meta.socket->sk->sk_rcvtimeo)) + continue; if (ping_timeout_active) { dev_err(DEV, "PingAck did not arrive in time.\n"); goto reconnect; @@ -4637,6 +4642,7 @@ int drbd_asender(struct drbd_thread *thi) goto reconnect; } if (received == expect) { + mdev->last_received = jiffies; D_ASSERT(cmd != NULL); if (!cmd->process(mdev, h)) goto reconnect; |