DragonFly commits List (threaded) for 2008-05
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/kern uipc_usrreq.c vfs_cache.c vfs_subr.c vfs_syscalls.c vfs_vnops.c src/sys/sys namecache.h
dillon 2008/05/07 18:41:07 PDT
DragonFly src repository
Modified files:
sys/kern uipc_usrreq.c vfs_cache.c vfs_subr.c
vfs_syscalls.c vfs_vnops.c
sys/sys namecache.h
Log:
Fix a race between the namecache and the vnode recycler. A vnode cannot be
recycled if it's namecache entry represents a directory with locked children.
The various VOP_N*() functions require the parent dvp to be stable.
The main fix is in vrecycle() (kern/vfs_subr.c). Do not vgone() the vnode
if we can't clean out the children.
Also create an API to assert that the parent dvp is stable, and make it
vhold/vdrop the dvp.
The race primarily effected HAMMER which uses the VOP_N*() API.
Revision Changes Path
1.38 +2 -3 src/sys/kern/uipc_usrreq.c
1.89 +56 -13 src/sys/kern/vfs_cache.c
1.113 +5 -0 src/sys/kern/vfs_subr.c
1.125 +26 -35 src/sys/kern/vfs_syscalls.c
1.56 +2 -3 src/sys/kern/vfs_vnops.c
1.30 +2 -0 src/sys/sys/namecache.h
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.88&r2=1.89&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.112&r2=1.113&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.124&r2=1.125&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vnops.c.diff?r1=1.55&r2=1.56&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.29&r2=1.30&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]