Date: Sat, 23 Oct 2004 20:49:17 +0000 (UTC) From: Poul-Henning Kamp <phk@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/geom geom_event.c src/sys/sys proc.h src/sys/kern subr_trap.c Message-ID: <200410232049.i9NKnHhH027683@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
phk 2004-10-23 20:49:17 UTC
FreeBSD src repository
Modified files:
sys/geom geom_event.c
sys/sys proc.h
sys/kern subr_trap.c
Log:
Add a new per-thread private flag: TDP_GEOM.
This flag gets set whenever the thread posts an event on the GEOM
event queue, and if the flag is set when the thread is prepared
to return to userland from the kernel, g_waitidle() will be called
to make sure that the posted events have completed.
This can replace an insufficient number of g_waitidle() calls in
various other places, and has the advantage of being failsafe: Any
system call which does a VOP_OPEN()/VOP_CLOSE will now correctly
wait for any geom events it posted as part of spoils or tastes.
Assert that topology and Giant is not held in g_waitidle().
Revision Changes Path
1.51 +8 -1 src/sys/geom/geom_event.c
1.276 +7 -0 src/sys/kern/subr_trap.c
1.411 +1 -0 src/sys/sys/proc.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410232049.i9NKnHhH027683>
