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 <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448839 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
ab1622aa35
commit
076ebfadfa
@ -44,6 +44,7 @@
|
|||||||
#include "spdk/queue.h"
|
#include "spdk/queue.h"
|
||||||
#include "spdk/nvme_spec.h"
|
#include "spdk/nvme_spec.h"
|
||||||
#include "spdk/scsi_spec.h"
|
#include "spdk/scsi_spec.h"
|
||||||
|
#include "spdk/notify.h"
|
||||||
#include "spdk/util.h"
|
#include "spdk/util.h"
|
||||||
#include "spdk/trace.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_fn = cb_fn;
|
||||||
g_init_cb_arg = cb_arg;
|
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());
|
snprintf(mempool_name, sizeof(mempool_name), "bdev_io_%d", getpid());
|
||||||
|
|
||||||
g_bdev_mgr.bdev_io_pool = spdk_mempool_create(mempool_name,
|
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_bdev_start(bdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spdk_notify_send("bdev_register", spdk_bdev_get_name(bdev));
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3761,6 +3766,7 @@ spdk_vbdev_register(struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
spdk_bdev_start(vbdev);
|
spdk_bdev_start(vbdev);
|
||||||
|
spdk_notify_send("bdev_register", spdk_bdev_get_name(vbdev));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3815,6 +3821,7 @@ spdk_bdev_unregister_unsafe(struct spdk_bdev *bdev)
|
|||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
TAILQ_REMOVE(&g_bdev_mgr.bdevs, bdev, internal.link);
|
TAILQ_REMOVE(&g_bdev_mgr.bdevs, bdev, internal.link);
|
||||||
SPDK_DEBUGLOG(SPDK_LOG_BDEV, "Removing bdev %s from list done\n", bdev->name);
|
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;
|
return rc;
|
||||||
|
Loading…
Reference in New Issue
Block a user