On Mon, 22 Oct 2007, John Birrell wrote:

jb          2007-10-22 04:12:57 UTC

 FreeBSD src repository

 Modified files:
   lib/libc/sys         kldstat.2
   sbin/kldstat         kldstat.c
   sys/kern             kern_linker.c
   sys/sys              linker.h
 Log:
 Add the full module path name to the kld_file_stat structure
 for kldstat(2).

 This allows libdtrace to determine the exact file from which
 a kernel module was loaded without having to guess.

 The kldstat(2) API is versioned with the size of the
 kld_file_stat structure, so this change creates version 2.

 Add the pathname to the verbose output of kldstat(8) too.

When using this function, keep in mind that, as with all stored path strings in the kernel, the string may become stale, be relative to a particular process cwd, or a particular process root. Automated use of similarly stored paths relating to mounted file systems are notoriously unreliable, especially if chroot() is in use. This doesn't make stored paths unuseful, just requires a little caution to make sure nothing relies on them working better than they actually do work. You might want to add a note in the BUGS or IMPLEMENTATION section to this extent. We had a rather nasty series of bugs in the user mount tool for a while in which an incorrect assumption was made that the path a file system was mounted as (and hence cached in the mount structure) would remain valid at unmount time -- as a result, file systems couldn't be unmounted from within chroots or if an intermediate directory in their path had been renamed.

Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to