To make the file handle from the NFS server in the Linux kernel to work with other NFS client implementations, we have to remove dentry from file handle. The direct result is the file handle for the same file remains unchanged across machine reboot. Rebooting Linux NFS server no longer cause the NFS clients to get the stale NFS file handle.
However, deleting and creating the same pathname may still lead to the same file handle. To solve it, a generation counter is added to the file handle:
Since we removed the dependency on pathname in the file handle, rename and hard links within the same directory won't cause change in the file handle. However, since the parent directory inode is still the part of the file handle, move a file or hard link a file from one directory to a different directory within the same file system will result in the file handle change. So far we haven't got any report which shows it is a real problem yet.