nbd: avoid payload malloc when its size is 0
Some nbd io type has no payload, like NBD_CMD_DISC. Change-Id: I17babf625f51d32bf07fa7a9b6a7396660b39cd5 Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com> Reviewed-on: https://review.gerrithub.io/389779 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
863eb9e04e
commit
c45a589901
@ -242,10 +242,15 @@ process_request(struct spdk_nbd_disk *nbd)
|
||||
|
||||
io->payload_size = from_be32(&io->req.len);
|
||||
spdk_dma_free(io->payload);
|
||||
io->payload = spdk_dma_malloc(io->payload_size, nbd->buf_align, NULL);
|
||||
if (io->payload == NULL) {
|
||||
SPDK_ERRLOG("could not allocate io->payload of size %d\n", io->payload_size);
|
||||
return -ENOMEM;
|
||||
|
||||
if (io->payload_size) {
|
||||
io->payload = spdk_dma_malloc(io->payload_size, nbd->buf_align, NULL);
|
||||
if (io->payload == NULL) {
|
||||
SPDK_ERRLOG("could not allocate io->payload of size %d\n", io->payload_size);
|
||||
return -ENOMEM;
|
||||
}
|
||||
} else {
|
||||
io->payload = NULL;
|
||||
}
|
||||
|
||||
if (from_be32(&io->req.magic) != NBD_REQUEST_MAGIC) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user