Commit 47bb651c authored by Mike Gerdts's avatar Mike Gerdts Committed by Tomasz Zawadzki
Browse files

bdev: refactor bdev_examine before claims v2



This commit has no functional change. It refactors an if statement into
a case statement in preparation for supporting claims v2.

Signed-off-by: default avatarMike Gerdts <mgerdts@nvidia.com>
Change-Id: I1862428c91a7066ad9079878d4c1b690a5ef631c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15289


Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent a7eb6187
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -682,25 +682,39 @@ bdev_examine(struct spdk_bdev *bdev)
		}
	}

	if (bdev->internal.claim_type != SPDK_BDEV_CLAIM_NONE) {
		module = bdev->internal.claim.v1.module;
	spdk_spin_lock(&bdev->internal.spinlock);

	switch (bdev->internal.claim_type) {
	case SPDK_BDEV_CLAIM_NONE:
		/* Examine by all bdev modules */
		TAILQ_FOREACH(module, &g_bdev_mgr.bdev_modules, internal.tailq) {
			if (module->examine_disk) {
				spdk_spin_lock(&module->internal.spinlock);
				module->internal.action_in_progress++;
				spdk_spin_unlock(&module->internal.spinlock);
				spdk_spin_unlock(&bdev->internal.spinlock);
				module->examine_disk(bdev);
				spdk_spin_lock(&bdev->internal.spinlock);
			}
		return;
		}

	TAILQ_FOREACH(module, &g_bdev_mgr.bdev_modules, internal.tailq) {
		break;
	case SPDK_BDEV_CLAIM_EXCL_WRITE:
		/* Examine by the one bdev module with a v1 claim */
		module = bdev->internal.claim.v1.module;
		if (module->examine_disk) {
			spdk_spin_lock(&module->internal.spinlock);
			module->internal.action_in_progress++;
			spdk_spin_unlock(&module->internal.spinlock);
			spdk_spin_unlock(&bdev->internal.spinlock);
			module->examine_disk(bdev);
			return;
		}
		break;
	default:
		break;
	}

	spdk_spin_unlock(&bdev->internal.spinlock);
}

int