Date: Mon, 3 Jan 2000 13:27:54 -0500 (EST) From: Mccrobie Charles Arn <mccrobi@aplcenMP.apl.jhu.edu> Message-ID: <200001031827.NAA11389@aplcenMP.apl.jhu.edu>
index | next in thread | raw e-mail
Hello,
I have some questions about file systems under FreeBSD.
1) I want to keep a vnode reference in the FS mount private data.
How does the file system avoid having "reclaim" called on this vnode?
Do I need to tract the "state" of the vnode and recreate it if its
reclaimed?
What I'm doing is writing a file system for read-only of OpenVMS ODS-2.
ODS-2 has a file called the INDEXF.SYS file which contains all the
file headers (vnodes) for the file system. I would like to keep the
INDEXF.SYS file open all the time so that I can perform VOP_BMAP on it
to translate logical blocks into physical blocks.
For those non-OpenVMS'ers, the file header (vnode) can be obtained from
the file number (inode number) by performing a logical->physical block
translation on the INDEXF.SYS file. (Incidently, OpenVMS VBN=Unix LBN
and OpenVMS LBN=Unix physical block).
struct ods2_mount
{
...
vnode *indexf;
}
ods2_vget( ... )
{
...
header_vbn = ... /* convert file number to vbn within INDEXF.SYS */
error = VOP_BMAP(indexf, vbn, NULL, &lbn, ...);
...
}
2) The above defers the LBN->physical mapping to the VOP_BMAP procedure. Is
this the "preferred" method or should I just perform that mapping through
use of a "private" procedure?
The CD9660 code uses the VOP_BMAP procedure.
The HP UDF code keeps a private procedure for performing the mapping. The
VOP_BMAP call simply returns an error.
3) It seems the CD9660 file system doesn't do the following:
a) Handle interleaved files. I found nothing in the BMAP that accounts
for file gap. Furthermore, only the header contains file_unit_size
and interleave. I assume no data CD's have been produced with
interleaved files. Just the same, it does seem to be an oversight...
b) Handle multi-extent files. As I understand ISO 9660, there may be
more than one entry for a file which differs only in the "multi extent
flag" being set. This allows for multiple non-contiguous extents for
a single file. Again, I found no references to "multi extents" in the
code. Am I missing something here?
Thanks,
Chuck McCrobie (** MAD VAX **)
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001031827.NAA11389>
