Date: Mon, 13 Jan 2003 08:22:11 -0800 From: David Schultz <dschultz@uclink.Berkeley.EDU> To: Tomas Pluskal <plusik@pohoda.cz> Cc: Terry Lambert <tlambert2@mindspring.com>, Bruce Evans <bde@zeta.org.au>, freebsd-fs@FreeBSD.ORG Subject: Re: seeking help to rewrite the msdos filesystem Message-ID: <20030113162211.GA7279@HAL9000.homeunix.com> In-Reply-To: <20030112222759.R23717-100000@localhost.localdomain> References: <3E21D9F0.A2AA9F0@mindspring.com> <20030112222759.R23717-100000@localhost.localdomain>
next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake Tomas Pluskal <plusik@pohoda.cz>: > Thank you all for your comments. > I would like to state here, that I have no experience with > filesystem development at all (well, now I have a bit :) > You told me to look at the cd9660 code, so I did my best to do it like > it's in cd9660... I only partially understand what the code really does. > > By the way, is there any documentation for these things anywhere ? I mean > it is quite hard to understand what pcbmap(), bread(), cluster_read() etc. > and their parameters really mean, just by reading the code... > > If I understand it right, when I assume the file is not fragmented, it is > just a performance issue - it would make the FS slow on fragmented files, > but should not break anything. Is this correct? That's a good point, and I don't know the answer. I used to know the FAT filesystem very well back in my days with an XT clone, so I can probably answer any questions you have on that, but I have little experience with the VFS interface. The routine I would probably want to start looking at is cluster_read(). (Maybe I will do that when I get back from skiing.) Basically, you want to know whether it trusts VOP_BMAP about runs of contiguous blocks, or whether it verifies what vnode/lbn each block corresponds to. Since ffs_bmap() goes out of its way to ensure that it returns accurate information, I would guess the former. Alternatively, you might try testing your code by writing a one-cluster file, then creating another non-empty file, then appending to the first file. If something gets overwritten, then you have a bug. For a more extensive test, you could try untarring two tarballs to different places on an msdosfs volume simultaneously. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030113162211.GA7279>