devfs: panic on vrele() in nresolve / status of devfs

Alex Hornung ahornung at gmail.com
Sat May 30 05:17:03 PDT 2009


Hi all,

I'm running again into problems related to referencing and locking of
vnodes. 
This time it's in nresolve on vrele(vp) where vp is a newly allocated
vnode (or recycled if possible). vrele() causes a page fault when the
vnode is a device node. 
It doesn't cause any problems as far as I've seen with any other type
(directory, symlink). I can't quite understand what could be causing
this.

devfs_nresolve() can be found in devfs_vnops.c and devfs_allocv() can be
found in devfs_core.c. If anyone can offer me his insight on what could
be causing this problem I'd appreciate it.

My current code is at:
http://gitweb.dragonflybsd.org/~alexh/dragonfly.git/tree/aae02cbf0350ca50b64b381042f7eea01a44c1bc:/sys/vfs/devfs


About devfs status:
While I'm still dealing with the above panic and the code isn't cleaned
up and there might still be some locking issues, devfs already creates
devices dynamically, provides an automated cleanup for empty directories
and aliases (links) to devices that have been removed, and allows to
create symlinks. Right now I'm working on getting the interface to the
device itself to work (hence the above panic which occurs doing a
cat /mnt/null > test  or for that matter any other device node).


Thank you in advance,

Alex Hornung







More information about the Kernel mailing list