The branch stable/15 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=1234bd1b7213c253ad7730ee2cef642d0aab234e

commit 1234bd1b7213c253ad7730ee2cef642d0aab234e
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-09-08 13:46:08 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-09-16 02:45:12 +0000

    geom: only set TDP_GEOM for user threads
    
    PR:     289204
    
    (cherry picked from commit b0474e14895908f45c64158b0e558236923b8eb2)
---
 sys/geom/geom_event.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/sys/geom/geom_event.c b/sys/geom/geom_event.c
index 341233a6ef47..ffd46db55416 100644
--- a/sys/geom/geom_event.c
+++ b/sys/geom/geom_event.c
@@ -347,6 +347,7 @@ static void
 g_post_event_ep_va(g_event_t *func, void *arg, int wuflag,
     struct g_event *ep, va_list ap)
 {
+       struct thread *td;
        void *p;
        u_int n;
 
@@ -366,8 +367,12 @@ g_post_event_ep_va(g_event_t *func, void *arg, int wuflag,
        TAILQ_INSERT_TAIL(&g_events, ep, events);
        mtx_unlock(&g_eventlock);
        wakeup(&g_wait_event);
-       curthread->td_pflags |= TDP_GEOM;
-       ast_sched(curthread, TDA_GEOM);
+
+       td = curthread;
+       if ((td->td_pflags & TDP_KTHREAD) == 0) {
+               td->td_pflags |= TDP_GEOM;
+               ast_sched(td, TDA_GEOM);
+       }
 }
 
 void

Reply via email to