Index: geom_ctl.h =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_ctl.h,v retrieving revision 1.5 diff -u -p -r1.5 geom_ctl.h --- geom_ctl.h 1 Jun 2003 13:47:51 -0000 1.5 +++ geom_ctl.h 12 Feb 2004 16:08:14 -0000 @@ -37,7 +37,7 @@ /* * Version number. Used to check consistency between kernel and libgeom. */ -#define GCTL_VERSION 2 +#define GCTL_VERSION 3 struct gctl_req_arg { u_int nlen; @@ -72,6 +72,11 @@ struct gctl_req { /* kernel only fields */ int nerror; struct sbuf *serror; +#ifdef _KERNEL + struct thread *thread; +#else + void *thread; /* unused */ +#endif }; #define GEOM_CTL _IOW('G', GCTL_VERSION, struct gctl_req) Index: geom_ctl.c =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_ctl.c,v retrieving revision 1.30 diff -u -p -r1.30 geom_ctl.c --- geom_ctl.c 27 Sep 2003 12:00:59 -0000 1.30 +++ geom_ctl.c 12 Feb 2004 16:05:17 -0000 @@ -462,12 +462,14 @@ g_ctl_ioctl_ctl(dev_t dev, u_long cmd, c /* Get things on board */ gctl_copyin(req); + req->thread = td; if (g_debugflags & G_F_CTLDUMP) gctl_dump(req); if (!req->nerror) { g_waitfor_event(g_ctl_req, req, M_WAITOK, NULL); + req->thread = NULL; gctl_copyout(req); }