sys/vnode.h should not be used to define the on-disk format of any file system. everything it contains is for in-core use only. chfs should provide its owndefinition for anything that it wants to store on disk.
The only reason why sys/vnode.h is needed the IFTOVT macro, which is used when chfs writes a directory entry to the media. Maybe I should change the read/write method of the FS.