On Mon, 2007-04-16 at 13:50 +0100, David Howells wrote: > Hi Al, > > I think there might be a problem in the VFS with d_revalidate() not being > called enough on mountpoints. As far as I can tell from the printks in my AFS > stuff, it's only called on the mounted-on dentry, and not the vfsmount-root > dentry. However, with NFS at least (not so much AFS), can you trust that the > mount-root dentry still maps to the same inode and event if it does that that > inode is still up to date? The NFS mountpoint is _not_ defined in terms of the remote path. Once you have mounted a given directory, the expectation is that that particular directory stays mounted. You cannot allow it to morph into another object just because someone messes with the path on the server. This is very much analogous to the expectation that a bind mount should not morph into a different object just because someone has renamed something in the directory you were binding from. > I discovered it because I was relying on d_revalidate() to spot that the > server had broken the callback on a directory that had been changed. However, > the root directory of each volume isn't being d_revalidated. That sounds like an abuse. You are not revalidating the path itself (which is the purpose of d_revalidate). Instead you are revalidating the directory metadata, which is a very different thing. Cheers Trond - 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