NFS: Fix dentry revalidation for NFSv4 referrals and mountpoint crossings

As long as the directory contents haven't changed, we should just let the
path walk proceed to cross the mountpoint. Apart from being an optimisation
in the case of 'nohide' mountpoint traversals, it also fixes an issue with
referrals: referral inodes don't have valid filehandles, so calling
nfs_revalidate_inode() on them is a bug.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

+2
+2
fs/nfs/dir.c
··· 710 { 711 struct nfs_server *server = NFS_SERVER(inode); 712 713 if (nd != NULL) { 714 /* VFS wants an on-the-wire revalidation */ 715 if (nd->flags & LOOKUP_REVAL)
··· 710 { 711 struct nfs_server *server = NFS_SERVER(inode); 712 713 + if (test_bit(NFS_INO_MOUNTPOINT, &NFS_I(inode)->flags)) 714 + return 0; 715 if (nd != NULL) { 716 /* VFS wants an on-the-wire revalidation */ 717 if (nd->flags & LOOKUP_REVAL)