list of mandatory hooks in file system module implementation

"Salvatore Benedetto" <[email protected]> Sun, 24 Aug 2008 15:46:13 +0000
Newsgroups gmane.os.openbeos.kernel.devel
Message-ID <[email protected]>
Hi there,

while working on udf, from time to time I get panics on page fault
with an eip = 0x0.
This is clearly due to the fact that I forgot to add a certain hook,
probably to the fs_vnode_ops
structure.

I looked around in vfs.cpp for all the FS_CALL call used
unconditionally (that is, without calling
HAS_FS_CALL first), and I thought I implemented all of them (is
remove_vnode necessary btw?),
but it seems I'm still missing something. Here is the most important
part of a panic I just got

udf_lookup: filename = VIDEO_TS found at vnodeId = 262144!
vm_soft_fault: va 0x0 not covered by area in address space
vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at
0x0, ip 0x0, write 0, user 0, thread 0xc0
PANIC: vm_page_fault: unhandled page fault in kernel space at 0x0, ip 0x0
....
12 9217bd58 (+ 124) 00000000
13 9217bdd4 (+  48) 8008ebe7   <kernel>:dir_open_entry_ref__FlxPCcb + 0x008b
14 9217be04 (+ 320) 80093b73   <kernel>:_user_open_dir_entry_ref + 0x006b
15 9217bf44 (+ 100) 800bcee2   <kernel>:pre_syscall_debug_done +
0x0002 (nearest)
...

I looked at dir_open_entry_ref in vfs.cpp but honestly I'm not sure
which of the function
is the one to blame. By the way, why is the last entry call (line 12) blank?

Any help is appreciated.

Anyway, as the subject says, I'm wondering if there is a list of
mandatory hooks a module
should implement.

Regards,
-- 
Salvatore Benedetto (a.k.a. emitrax)
Student of Computer Engineer
University of Pisa
www.haiku-os.it

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/