On Mon, 2012-07-09 at 11:27 -0500, Steven J. Magnani wrote: > On Tue, 2012-07-10 at 01:10 +0900, OGAWA Hirofumi wrote: > > "Steven J. Magnani" <st...@digidescorp.com> writes: > > > > > On Mon, 2012-07-09 at 22:43 +0900, OGAWA Hirofumi wrote: > > >> "Steven J. Magnani" <st...@digidescorp.com> writes: > > >> > > >> >> We need the key, possible key is - if it is only directory, FAT may be > > >> >> able to use i_start as additional search key. > > >> > > > >> > Interesting idea. I think this, and reformulating the FAT NFS file > > >> > handle to include the parent's i_ino, will greatly simplify (and speed > > >> > up) the code. > > >> > > >> Does it work even if the inode was rename()'ed? > > > > > > AFAICT. I don't see why it wouldn't; on a rename, the inode's i_pos > > > changes but its i_ino stays the same, right? > > > > If the inode is not on cache anymore, is there the possibility that > > selects the wrong parent? IIRC, NFS Server can be rebooted at any time > > while the client using the same file handle. > > True, but it's looking like we can just use the default handle > constructed by export_encode_fh(), namely (i_ino, i_generation, > parent->i_ino, parent->i_generation). None of those components should > change in a server reboot.
I think I misunderstood you when I wrote this. I assumed we were talking about a restart of nfsd, not the entire machine it was running on. If there is a danger of mismapping on a reboot isn't that present in the existing mainline code, i.e. fat_fh_to_dentry()? Ideally, the (i_ino, i_generation) signature would be different on a reboot, although with only 2-second granularity in i_generation I suppose that's less likely than we would prefer. Also I would think that many inodes simply wouldn't exist in the cache, in which case we would fail the operation with ESTALE. ------------------------------------------------------------------------ Steven J. Magnani "I claim this network for MARS! www.digidescorp.com Earthling, return my space modulator!" #include <standard.disclaimer> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/