forked from luck/tmp_suning_uos_patched
nbd: zero from and len fields in NBD_CMD_DISCONNECT.
Len field is already set to zero, but not the from field which is sent as 0xfffffffffffffe00. This makes no sense, and may cause confuse server implementations doing sanity checks (qemu-nbd is an example.) Signed-off-by: Hani Benhabiles <hani@linux.com> Cc: Paul Clements <paul.clements@us.sios.com> Cc: Paul Clements <Paul.Clements@steeleye.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b1de0d139c
commit
04cfac4e40
|
@ -243,14 +243,11 @@ static int nbd_send_req(struct nbd_device *nbd, struct request *req)
|
|||
struct nbd_request request;
|
||||
unsigned long size = blk_rq_bytes(req);
|
||||
|
||||
memset(&request, 0, sizeof(request));
|
||||
request.magic = htonl(NBD_REQUEST_MAGIC);
|
||||
request.type = htonl(nbd_cmd(req));
|
||||
|
||||
if (nbd_cmd(req) == NBD_CMD_FLUSH) {
|
||||
/* Other values are reserved for FLUSH requests. */
|
||||
request.from = 0;
|
||||
request.len = 0;
|
||||
} else {
|
||||
if (nbd_cmd(req) != NBD_CMD_FLUSH && nbd_cmd(req) != NBD_CMD_DISC) {
|
||||
request.from = cpu_to_be64((u64)blk_rq_pos(req) << 9);
|
||||
request.len = htonl(size);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user