On Tuesday June 12, [EMAIL PROTECTED] wrote: > > > On Wed, 13 Jun 2001, Neil Brown wrote: > > > Call fat_iget(i_location). > > If this finds something, check i_logstart. > > If it matches, assume SUCCESS. > > > > Then comes the tricky bit: read the directory entry > > indicated by i_location, check the i_logstart is right, > > if it is, try to get it into the inode cache properly. > > Uh-huh. Suppose that directory had been removed and space had been > reused by a regular file. Which had been filled with the right > contents. It's really not hard to do. Now, remove that file and > you've got a nice data corruption waiting to happen. Told you it was tricky!! Let's see now... We could also store the disc address of the start of the directory in the filehandle. Then we examine the FAT to see if the file starting at that block looks like a directory, and contains the target directory entry. If it does, we extract the ".." entry (do FAT directories have and analogue of ".." entries?) and keep going up the tree until we find the root, or we have tried too hard. Once we hit the root we will have collected a full path name for the file, so we just do lots of lookups to get it into the caches. Ugh. I might just do that first step (find_ino) and offer it as as an experimental patch to the growing number of people who have asked for nfs exporting of FAT filesystems, and see how reliable it is in practice. NeilBrown - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/