From 44ad0bd4b7e14904f8d3187cf874ffd5911b4e80 Mon Sep 17 00:00:00 2001 From: Philipp Reisner Date: Fri, 17 Aug 2012 16:55:47 +0200 Subject: [PATCH] --- yaml --- r: 345690 b: refs/heads/master c: dbd0820c6f7b7db9a97d63ea379fc174a63ddbca h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_receiver.c | 36 +++++------------------- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/[refs] b/[refs] index 78947677925a..60ea616a282d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 599377acb7cf3e1bdec13285096adac7ebaaaac5 +refs/heads/master: dbd0820c6f7b7db9a97d63ea379fc174a63ddbca diff --git a/trunk/drivers/block/drbd/drbd_receiver.c b/trunk/drivers/block/drbd/drbd_receiver.c index 64e6a619241d..264ea25a9b06 100644 --- a/trunk/drivers/block/drbd/drbd_receiver.c +++ b/trunk/drivers/block/drbd/drbd_receiver.c @@ -516,37 +516,15 @@ static int drbd_recv(struct drbd_conf *mdev, void *buf, size_t size) oldfs = get_fs(); set_fs(KERNEL_DS); - - for (;;) { - rv = sock_recvmsg(mdev->data.socket, &msg, size, msg.msg_flags); - if (rv == size) - break; - - /* Note: - * ECONNRESET other side closed the connection - * ERESTARTSYS (on sock) we got a signal - */ - - if (rv < 0) { - if (rv == -ECONNRESET) - dev_info(DEV, "sock was reset by peer\n"); - else if (rv != -ERESTARTSYS) - dev_err(DEV, "sock_recvmsg returned %d\n", rv); - break; - } else if (rv == 0) { - break; - } else { - /* signal came in, or peer/link went down, - * after we read a partial message - */ - /* D_ASSERT(signal_pending(current)); */ - break; - } - }; - + rv = sock_recvmsg(mdev->data.socket, &msg, size, msg.msg_flags); set_fs(oldfs); - if (rv == 0) { + if (rv < 0) { + if (rv == -ECONNRESET) + dev_info(DEV, "sock was reset by peer\n"); + else if (rv != -ERESTARTSYS) + dev_err(DEV, "sock_recvmsg returned %d\n", rv); + } else if (rv == 0) { if (test_bit(DISCONNECT_SENT, &mdev->flags)) { long t; /* time_left */ t = wait_event_timeout(mdev->state_wait, mdev->state.conn < C_CONNECTED,