DragonFly commits List (threaded) for 2007-08
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/kern uipc_usrreq.c vfs_cache.c vfs_default.c vfs_syscalls.c vfs_vnops.c vfs_vopops.c src/sys/sys vfsops.h src/sys/vfs/nfs nfs_vnops.c
dillon 2007/08/13 10:43:57 PDT
DragonFly src repository
Modified files:
sys/kern uipc_usrreq.c vfs_cache.c vfs_default.c
vfs_syscalls.c vfs_vnops.c vfs_vopops.c
sys/sys vfsops.h
sys/vfs/nfs nfs_vnops.c
Log:
The new VOP_N*() (namespace) operations pass a pointer to a namecache
record. This information is sufficient for resolving the namespace
operation. In all cases the parent namecache record already had to have
a resolved vnode so the related directory vnode could be easily extracted
by the VFS. But this also means the target VFSs had to traverse the
namecache topology up one level which introduced API pollution that
is not compatible with directly translating a VOP to a RPC.
To solve this we now pass a directory vnode along with the namecache pointer.
This vnode is only held, not referenced or vget()d so the target VFS must
still vget() the vnode and/or do whatever it needs to do to validate it.
This gives the target VFS full control over directory locking when performing
namespace operations. The namespaces themselves are already guarenteed
to be locked due to the fact that the related namecache records are locked.
This change is being made to accomodate USERFS, so we can directly translate
the related VOPs to RPCs without having to reproduce the namecache topology
in the target VFS running in userland.
Revision Changes Path
1.36 +6 -1 src/sys/kern/uipc_usrreq.c
1.84 +9 -4 src/sys/kern/vfs_cache.c
1.50 +25 -51 src/sys/kern/vfs_default.c
1.119 +72 -15 src/sys/kern/vfs_syscalls.c
1.53 +7 -1 src/sys/kern/vfs_vnops.c
1.35 +28 -12 src/sys/kern/vfs_vopops.c
1.29 +89 -33 src/sys/sys/vfsops.h
1.75 +2 -5 src/sys/vfs/nfs/nfs_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.83&r2=1.84&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.49&r2=1.50&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.118&r2=1.119&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vnops.c.diff?r1=1.52&r2=1.53&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vopops.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vfsops.h.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.74&r2=1.75&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]