From 076ebfadfaeea6e3411dd0138e66387a7ea623e2 Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Fri, 22 Mar 2019 12:19:42 +0100 Subject: [PATCH] bdev: add register and unregister notification When bdev is registered it will send "bdev_register" notification and "bdev_unregister" when unregister is complete. Change-Id: I3b37a4cb766a473f3da63a571036add366e78fa5 Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448839 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/bdev/bdev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 659bdc5e4..e02cf4c56 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -44,6 +44,7 @@ #include "spdk/queue.h" #include "spdk/nvme_spec.h" #include "spdk/scsi_spec.h" +#include "spdk/notify.h" #include "spdk/util.h" #include "spdk/trace.h" @@ -920,6 +921,9 @@ spdk_bdev_initialize(spdk_bdev_init_cb cb_fn, void *cb_arg) g_init_cb_fn = cb_fn; g_init_cb_arg = cb_arg; + spdk_notify_type_register("bdev_register"); + spdk_notify_type_register("bdev_unregister"); + snprintf(mempool_name, sizeof(mempool_name), "bdev_io_%d", getpid()); g_bdev_mgr.bdev_io_pool = spdk_mempool_create(mempool_name, @@ -3747,6 +3751,7 @@ spdk_bdev_register(struct spdk_bdev *bdev) spdk_bdev_start(bdev); } + spdk_notify_send("bdev_register", spdk_bdev_get_name(bdev)); return rc; } @@ -3761,6 +3766,7 @@ spdk_vbdev_register(struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs, int } spdk_bdev_start(vbdev); + spdk_notify_send("bdev_register", spdk_bdev_get_name(vbdev)); return 0; } @@ -3815,6 +3821,7 @@ spdk_bdev_unregister_unsafe(struct spdk_bdev *bdev) if (rc == 0) { TAILQ_REMOVE(&g_bdev_mgr.bdevs, bdev, internal.link); SPDK_DEBUGLOG(SPDK_LOG_BDEV, "Removing bdev %s from list done\n", bdev->name); + spdk_notify_send("bdev_unregister", spdk_bdev_get_name(bdev)); } return rc;