From a2d57860c2d76f45d4f834940002e80913f810e7 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Tue, 10 Aug 2010 10:20:05 -0400 Subject: [PATCH] --- yaml --- r: 209654 b: refs/heads/master c: f5a73672d1811f2fb1dcb62ca90ceb12b2050ae7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/nfs/dir.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 19c1aec9cfae..090bebeec9f5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 669502ff31d7dba1849aec7ee2450a3c61f57d39 +refs/heads/master: f5a73672d1811f2fb1dcb62ca90ceb12b2050ae7 diff --git a/trunk/fs/nfs/dir.c b/trunk/fs/nfs/dir.c index 29539ceeb745..bd91b2778315 100644 --- a/trunk/fs/nfs/dir.c +++ b/trunk/fs/nfs/dir.c @@ -140,6 +140,13 @@ nfs_opendir(struct inode *inode, struct file *filp) /* Call generic open code in order to cache credentials */ res = nfs_open(inode, filp); + if (filp->f_path.dentry == filp->f_path.mnt->mnt_root) { + /* This is a mountpoint, so d_revalidate will never + * have been called, so we need to refresh the + * inode (for close-open consistency) ourselves. + */ + __nfs_revalidate_inode(NFS_SERVER(inode), inode); + } return res; }