Commit 97329b16 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

bdev/malloc: malloc_done() uses switch-case for clean up



Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ibe8956b54ec5d2bf50f5261f04d0f61a783a5cc2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22988


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
parent afdec00e
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -181,18 +181,20 @@ malloc_done(void *ref, int status)
	}

	if (bdev_io->bdev->dif_type != SPDK_DIF_DISABLE &&
	    bdev_io->type == SPDK_BDEV_IO_TYPE_READ &&
	    task->status == SPDK_BDEV_IO_STATUS_SUCCESS) {
		switch (bdev_io->type) {
		case SPDK_BDEV_IO_TYPE_READ:
			rc = malloc_verify_pi(bdev_io);
		if (rc != 0) {
			task->status = SPDK_BDEV_IO_STATUS_FAILED;
		}
			break;
		case SPDK_BDEV_IO_TYPE_UNMAP:
		case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
			rc = malloc_unmap_write_zeroes_generate_pi(bdev_io);
			break;
		default:
			rc = 0;
			break;
		}

	if (bdev_io->bdev->dif_type != SPDK_DIF_DISABLE &&
	    (bdev_io->type == SPDK_BDEV_IO_TYPE_UNMAP || bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE_ZEROES) &&
	    task->status == SPDK_BDEV_IO_STATUS_SUCCESS) {
		rc = malloc_unmap_write_zeroes_generate_pi(bdev_io);
		if (rc != 0) {
			task->status = SPDK_BDEV_IO_STATUS_FAILED;
		}