cvs commit: src/sys/kern vfs_cache.c vfs_default.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Oct 25 19:29:45 PDT 2006
dillon 2006/10/25 19:27:19 PDT
DragonFly src repository
Modified files:
sys/kern vfs_cache.c vfs_default.c
Log:
Fix a stack overflow due to recursion. When the namecache must invalidate
an entire subtree the depth of the tree can cause the kernel stack to
overflow. Implement a simple algorithm which limits the recursion depth.
When the recursion depth is reached the current namecache node is recorded
and further recursion does not occur. The top level then recalls the
deletion at the recorded node, then restarts.
When removing a file or directory, invalidate all namecache records
associated with the vnode rather then just the one led to by the current
path. Note that RENAME is not fixed and requires a more sophisticated
solution. These fixes effect NULLFS.
Revision Changes Path
1.78 +57 -1 src/sys/kern/vfs_cache.c
1.44 +4 -1 src/sys/kern/vfs_default.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.77&r2=1.78&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.43&r2=1.44&f=u
More information about the Commits
mailing list