Thank you very much! I have read vnode_if.c, vnode_if.h and sys/kern/vfs_init.c and understand the vfs initialization.From: Peter Wemm <[EMAIL PROTECTED]> It is up to the file system to get it right. The normal procedure is to use namei() which does VOP_LOOKUP() calls to each file system. As a side effect of doing a lookup, the file system itself returns a "new" vnode pointer that corresponds to the name being looked up. If we are using a ufs/ffs file system then the fs code will set the operations vector in the vnode iself to point to either the specfs or regular vop entries. See v_op in struct vnode. For devfs and the seperate /dev case it is similar.. for devfs there are two types of vnodes.. The first is the "special" device type (devfs_specop_entries[]), and the second is the vnodes that are used for traversing the directory structure (directory files, symlinks etc) - devfs_vnodeop_entries[]. The selection is done here: error = getnewvnode("devfs", mp, devfs_vnodeop_p, &vp); or vp->v_op = devfs_specop_p;If you have a look at vnode_if.c and vnode_if.h in the compile directory, that should give a few more clues too. sys/kern/vfs_init.c constructs the tables that these inlines use. Cheers, -Peter
I have read the John Shelby Heidemann dissertation "Stackable Design of File Systems". I have some questions.
About "Coherence Architecture", in FreeBSD, how is it implemented? Should I read which part code?
About "Featherweight Layer", in FreeBSD, how is it implemented? Should I read which part code? Could you give me some clues?
I have not a clear idea about Stackable VFS, I hope read the FreeBSD kernel source to understand the real VFS implementation. Thank your help!
Best Regards
Ouyang Kai
_________________________________________________________________
The new MSN 8 is here: Try it free* for 2 months http://join.msn.com/?page=dept/dialup
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message