Hi, I am considering another possibility: suppose client C1 does lookup() on file X and gets a file handle, which include inode number, generation number and parent's inode number. Before C1 issues getattr(), C2 move the parent directory to a different place, which will not change the parent's inode number, neither the file X's inode, i_generation. So when C1 issues a getattr() request with this file handle, the server seems to have no way to detect that file X is not existent at the original path. Instead, the server will returns the moved X's attributes, which are correct, but semantically wrong. Is there any way that server deal with this problem? Thanks a lot! -x On 8/10/06, Neil Brown <neilb@xxxxxxx> wrote:
On Thursday August 10, uszhaoxin@xxxxxxxxx wrote: > Many thanks for your kind help! > > Your answer is what I expected. But what frustrated me is that I > cannot find the code that verifies the generation number in NFS V3 > codes. Do you know where it check the generation number? NFSD doesn't. The individual filesystem does. You need to look in the filesystem code. Some filesystems use common code from fs/exportfs/expfs.c See "export_iget". NeilBrown.
- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html