diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 31a0b605f261457f9d07c0c49c04d0b16e958796..bdbade9a5cf50a99e3b2e3fa3f860d71f36bfe82 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -341,7 +341,8 @@ static struct request *nbd_read_stat(struct nbd_device *lo)
 					printk(KERN_ERR "%s: Receive data failed (result %d)\n",
 							lo->disk->disk_name,
 							result);
-					goto harderror;
+					req->errors++;
+					return req;
 				}
 				dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
 					lo->disk->disk_name, req, bvec->bv_len);