Skip site navigation (1)Skip section navigation (2)
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>