Index: geom.h =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom.h,v retrieving revision 1.76 diff -u -p -r1.76 geom.h --- geom.h 7 Dec 2003 10:04:43 -0000 1.76 +++ geom.h 3 Feb 2004 22:26:07 -0000 @@ -281,6 +281,12 @@ extern struct sx topology_lock; sx_assert(&topology_lock, SX_XLOCKED); \ } while (0) +#define g_topology_assert_not() \ + do { \ + g_sanity(NULL); \ + sx_assert(&topology_lock, SX_UNLOCKED); \ + } while (0) + #define DECLARE_GEOM_CLASS(class, name) \ static moduledata_t name##_mod = { \ #name, g_modevent, &class \ Index: geom_event.c =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_event.c,v retrieving revision 1.47 diff -u -p -r1.47 geom_event.c --- geom_event.c 2 Feb 2004 10:58:07 -0000 1.47 +++ geom_event.c 3 Feb 2004 21:59:39 -0000 @@ -315,7 +315,7 @@ g_waitfor_event(g_event_t *func, void *a struct g_event *ep; int error; - /* g_topology_assert_not(); */ + g_topology_assert_not(); KASSERT(flag == M_WAITOK || flag == M_NOWAIT, ("Wrong flag to g_post_event")); va_start(ap, flag);