Commit c45a5899 authored by Xiaodong Liu's avatar Xiaodong Liu Committed by Daniel Verkamp
Browse files

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: default avatarXiaodong Liu <xiaodong.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/389779


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 863eb9e0
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -242,11 +242,16 @@ process_request(struct spdk_nbd_disk *nbd)

	io->payload_size = from_be32(&io->req.len);
	spdk_dma_free(io->payload);

	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) {
		SPDK_ERRLOG("invalid request magic\n");