summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-01-23 20:44:26 +0000
committerrwatson <rwatson@FreeBSD.org>2004-01-23 20:44:26 +0000
commit718d82cd61f270ab6f5586658e3d6204b35e4f64 (patch)
treecad255f8a586699981e032637c52523632e2f1bc /lib/libc
parentcd37a854086191ba3b4fc2e379dc71b33a8ca0ec (diff)
downloadFreeBSD-src-718d82cd61f270ab6f5586658e3d6204b35e4f64.zip
FreeBSD-src-718d82cd61f270ab6f5586658e3d6204b35e4f64.tar.gz
Defer the vrele() on a jail's root vnode reference from prison_free()
to a new prison_complete() task run by a task queue. This removes a requirement for grabbing Giant in crfree(). Embed the 'struct task' in 'struct prison' so that we don't have to allocate memory from prison_free() (which means we also defer the FREE()). With this change, I believe grabbing Giant from crfree() can now be removed, but need to check the uidinfo code paths. To avoid header pollution, move the definition of 'struct task' to _task.h, and recursively include from taskqueue.h and jail.h; much preferably to all files including jail.h picking up a requirement to include taskqueue.h. Bumped into by: sam Reviewed by: bde, tjr
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud