Re: d_revalidate not being called enough on mountpoints?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux