DragonFly-2.3.0.571.gb8477 master sys/kern kern_descrip.c tty.c uipc_usrreq.c vfs_default.c vfs_subr.c vfs_syscalls.c vfs_vopops.c sys/sys file.h filedesc.h vfsops.h vnode.h sys/vfs/specfs spec_vnops.c sys/vfs/union union_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Apr 2 23:49:26 PDT 2009
commit b8477cda8783596a7c765667658de9a94dd368fd
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Apr 2 23:38:31 2009 -0700
Revoke reimplementation - primary commit part 1/2.
Rip out and replace the old revoke code. The old code basically ripped
vnodes out from under the related VFSs, faked close operations, hacked
up ref counts, and generally wreaked havoc on the system.
The new code is not as efficient, but plays a lot nicer with the kernel.
It locates and closes matching file descriptors (replacing the descriptor
with a dummy that just returns an error). No ref count hacks are needed
and vnodes are no longer unceremoniously canned.
The new revoke code is also capable of revoking any vnode in the system,
device or file. root, jail root, and chrooted directories cannot be
revoked.
This also fixes an issue with HAMMER getting confused when one of its
vnodes got ripped out from under it by the old revoke.
Summary of changes:
sys/kern/kern_descrip.c | 120 +++++++++++++++++++++++++++++++++++--------
sys/kern/tty.c | 4 +-
sys/kern/uipc_usrreq.c | 13 ++---
sys/kern/vfs_default.c | 1 -
sys/kern/vfs_subr.c | 36 +++++--------
sys/kern/vfs_syscalls.c | 12 ++---
sys/kern/vfs_vopops.c | 25 ---------
sys/sys/file.h | 2 +-
sys/sys/filedesc.h | 3 +-
sys/sys/vfsops.h | 14 +-----
sys/sys/vnode.h | 3 +-
sys/vfs/specfs/spec_vnops.c | 28 +++++-----
sys/vfs/union/union_vnops.c | 25 ---------
13 files changed, 141 insertions(+), 145 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b8477cda8783596a7c765667658de9a94dd368fd
--
DragonFly BSD source repository
More information about the Commits
mailing list