From: Roger W. <ro...@fi...> - 2012-10-10 17:50:32
|
The HSFS NFS client via FUSE - https://github.com/openunix/hsfs - is good as far as it goes, but it doesn't deal with stale nfs handles. Consider the following scenario: Fuse/NFS client looks up "old_file" on the nfs server and uses the nfs fileid (the server's inode number) as the fuse_ino_t. Another client deletes "old_file" and creates "new_file" and the server _reuses the old inode number_ (although it will use a new generation number) The first client looks up "new_file" and gets the same fileid as it did for "old_file", but with a different nfs handle. What should the client do in this situation ? It seemingly needs to kill off all existing references to the old file before it can reuse the fuse_ino_t for the new file. And what should it do if it gets an estale error midway through an operation (e.g. fuse_write), because the file no longer exists ? -- Roger |