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-all mailing list