[DTrace-devel] [PATCH 14/16] Only perform detach if the probe is attached
Kris Van Hees
kris.van.hees at oracle.com
Thu Mar 18 21:54:59 PDT 2021
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_prov_dtrace.c | 6 +++++-
libdtrace/dt_prov_fbt.c | 8 ++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/libdtrace/dt_prov_dtrace.c b/libdtrace/dt_prov_dtrace.c
index fe0b8d86..6f978bd0 100644
--- a/libdtrace/dt_prov_dtrace.c
+++ b/libdtrace/dt_prov_dtrace.c
@@ -308,7 +308,11 @@ static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
*/
static void detach(dtrace_hdl_t *dtp, const dt_probe_t *prp)
{
- int fd;
+ int fd;
+ tp_probe_t *tpp = prp->prv_data;
+
+ if (!dt_tp_is_attached(tpp))
+ return;
dt_tp_detach(dtp, prp->prv_data);
diff --git a/libdtrace/dt_prov_fbt.c b/libdtrace/dt_prov_fbt.c
index c344aa4c..1c194ea0 100644
--- a/libdtrace/dt_prov_fbt.c
+++ b/libdtrace/dt_prov_fbt.c
@@ -267,9 +267,13 @@ static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
*/
static void detach(dtrace_hdl_t *dtp, const dt_probe_t *prp)
{
- int fd;
+ tp_probe_t *tpp = prp->prv_data;
+ int fd;
+
+ if (!dt_tp_is_attached(tpp))
+ return;
- dt_tp_detach(dtp, prp->prv_data);
+ dt_tp_detach(dtp, tpp);
fd = open(KPROBE_EVENTS, O_WRONLY | O_APPEND);
if (fd == -1)
--
2.28.0
More information about the DTrace-devel
mailing list