John Ogness <[EMAIL PROTECTED]> wrote on 23/02/2007 21:28:03:

> [EMAIL PROTECTED] wrote:
> >>Well, yes, it does work. However, it uses the d_path() function. One 
of
> >>the advantages of DazukoFS is that we can get away from the d_path()
> >>function. The problem with this function is:
> >>
> >>4. __d_path() would allow us to get around #2, but it is not 
re-entrant
> >>safe and it is not exported to modules
> > 
> > What exactly do you mean with re-entrant safe?
> 
> d_path() is a wrapper for __d_path() that does two things: It uses the
> root mount of the current process and it calls __d_path() while holding
> the necessary lock "dcache_lock".
> 
> Unfortunately "dcache_lock" is a static variable within fs/dcache.c,
> which means no other kernel code outside of fs/dcache.c can access this
> lock. This means that a kernel module cannot safely call __d_path() (on
> SMP machines) and must use the "restricted" d_path() function.
> 
> Note: I just noticed that 2.6.20 now exports dcache_lock. Interesting...

Yes, and for earlier version you could still get it from the System.map 
file which would be equivalent to syscall_table stuff. Then any 
re-implementation of __d_path can be safe.
 
Btw, I just tried it on FreeBSD 6.2 and I seem to be missing 
/usr/src/sbin/mount_nullfs directory. Any ideas on where can I get that?

Tvrtko


Sophos Plc, The Pentagon, Abingdon Science Park, Abingdon,
OX14 3YP, United Kingdom.

Company Reg No 2096520. VAT Reg No GB 348 3873 20.



_______________________________________________
Dazuko-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dazuko-devel

Reply via email to