[PATCH] nbd: Abort request on data reception failure
When reading from nbd device, we need to receive all the data after receiving reply packet from the server - otherwise such request will never be ended. If socket is closed right after accepting reply control packet and in the middle of waiting for read data, nbd_read_stat() returns NULL and nbd_end_request() is not called. This patch fixes it. Signed-off-by: Michal Feix <michal@feix.cz> Acked-by: Paul Clements <paul.clements@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
e4b57e0842
commit
f0df33bcab
1 changed files with 2 additions and 1 deletions
|
@ -341,7 +341,8 @@ static struct request *nbd_read_stat(struct nbd_device *lo)
|
||||||
printk(KERN_ERR "%s: Receive data failed (result %d)\n",
|
printk(KERN_ERR "%s: Receive data failed (result %d)\n",
|
||||||
lo->disk->disk_name,
|
lo->disk->disk_name,
|
||||||
result);
|
result);
|
||||||
goto harderror;
|
req->errors++;
|
||||||
|
return req;
|
||||||
}
|
}
|
||||||
dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
|
dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
|
||||||
lo->disk->disk_name, req, bvec->bv_len);
|
lo->disk->disk_name, req, bvec->bv_len);
|
||||||
|
|
Loading…
Reference in a new issue