NFS: Block new writes while syncing data in nfs_getattr()
authorTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 25 Mar 2015 20:40:07 +0000 (16:40 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 27 Mar 2015 16:39:39 +0000 (12:39 -0400)
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/inode.c

index f1fc0e4..0c3be26 100644 (file)
@@ -649,7 +649,9 @@ int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
        trace_nfs_getattr_enter(inode);
        /* Flush out writes to the server in order to update c/mtime.  */
        if (S_ISREG(inode->i_mode)) {
+               mutex_lock(&inode->i_mutex);
                err = nfs_sync_inode(inode);
+               mutex_unlock(&inode->i_mutex);
                if (err)
                        goto out;
        }