Date: Fri, 23 Jan 2004 12:44:27 -0800 (PST) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_jail.c src/sys/sys _task.h jail.h taskqueue.h Message-ID: <200401232044.i0NKiRmu095151@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401232044.i0NKiRmu095151>