Commit ea97fbd2 authored by zhenwei pi's avatar zhenwei pi Committed by Tomasz Zawadzki
Browse files

scsi: Check descriptor count for UNMAP



There is no need to call split IO(bdev_scsi_split) on two case:
- invalid descriptor count
- zero descriptor count(newly added)

Suggested-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I80a7bae711fedc957319d5d44c55dac8c59f5ef5
Signed-off-by: default avatarzhenwei pi <pizhenwei@bytedance.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20513


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent ca199201
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -1553,18 +1553,20 @@ bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_scsi_task *task)
		}
	}

	if (desc_count > 0) {
		ctx->remaining_count = desc_count;
		return bdev_scsi_split(ctx);
	}

	if (desc_count < 0) {
		spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
					  SPDK_SCSI_SENSE_ILLEGAL_REQUEST,
					  SPDK_SCSI_ASC_INVALID_FIELD_IN_CDB,
					  SPDK_SCSI_ASCQ_CAUSE_NOT_REPORTABLE);
		free(ctx);
		return SPDK_SCSI_TASK_COMPLETE;
	}

	ctx->remaining_count = desc_count;

	return bdev_scsi_split(ctx);
	free(ctx);
	return SPDK_SCSI_TASK_COMPLETE;
}

static int