cvs commit: src/sys/kern kern_jail.c src/sys/sys _task.h jail.h
taskqueue.h
Robert Watson
rwatson at FreeBSD.org
Fri Jan 23 12:44:34 PST 2004
rwatson 2004/01/23 12:44:27 PST
FreeBSD src repository
Modified files:
sys/kern kern_jail.c
sys/sys jail.h taskqueue.h
Added files:
sys/sys _task.h
Log:
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
Revision Changes Path
1.35 +22 -6 src/sys/kern/kern_jail.c
1.1 +54 -0 src/sys/sys/_task.h (new)
1.19 +3 -1 src/sys/sys/jail.h
1.10 +1 -16 src/sys/sys/taskqueue.h
More information about the cvs-src
mailing list