From dfc028857acf494e4cd2e8fc33f196a85c9d305e Mon Sep 17 00:00:00 2001 From: Lars Ellenberg Date: Thu, 1 Apr 2010 16:57:19 +0200 Subject: [PATCH] --- yaml --- r: 196838 b: refs/heads/master c: c3470cde57ea34d9b4bd34891ec040e46b9fb3bf h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_receiver.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f61d00d7ab1d..753863c35602 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d1894ebe441093cfd967affcbc56b764960575e +refs/heads/master: c3470cde57ea34d9b4bd34891ec040e46b9fb3bf diff --git a/trunk/drivers/block/drbd/drbd_receiver.c b/trunk/drivers/block/drbd/drbd_receiver.c index 93106fb92be8..c7285e16b667 100644 --- a/trunk/drivers/block/drbd/drbd_receiver.c +++ b/trunk/drivers/block/drbd/drbd_receiver.c @@ -1331,6 +1331,9 @@ static int drbd_drain_block(struct drbd_conf *mdev, int data_size) int rr, rv = 1; void *data; + if (!data_size) + return TRUE; + page = drbd_pp_alloc(mdev, 1); data = kmap(page); @@ -1946,7 +1949,7 @@ static int receive_DataRequest(struct drbd_conf *mdev, struct p_header *h) "no local data.\n"); drbd_send_ack_rp(mdev, h->command == P_DATA_REQUEST ? P_NEG_DREPLY : P_NEG_RS_DREPLY , p); - return TRUE; + return drbd_drain_block(mdev, h->length - brps); } /* GFP_NOIO, because we must not cause arbitrary write-out: in a DRBD