patch-2.0.8 linux/fs/nfs/file.c

Next file: linux/include/asm-i386/pgtable.h
Previous file: linux/fs/nfs/dir.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.7/linux/fs/nfs/file.c linux/fs/nfs/file.c
@@ -70,14 +70,17 @@
 {
 	struct nfs_fattr fattr;
 
-	if (jiffies - NFS_READTIME(inode) < server->acregmax)
+	if (jiffies - NFS_READTIME(inode) < NFS_ATTRTIMEO(inode))
 		return;
 
 	NFS_READTIME(inode) = jiffies;
 	if (nfs_proc_getattr(server, NFS_FH(inode), &fattr) == 0) {
 		nfs_refresh_inode(inode, &fattr);
-		if (fattr.mtime.seconds == NFS_OLDMTIME(inode))
+		if (fattr.mtime.seconds == NFS_OLDMTIME(inode)) {
+			if ((NFS_ATTRTIMEO(inode) <<= 1) > server->acregmax)
+				NFS_ATTRTIMEO(inode) = server->acregmax;
 			return;
+		}
 		NFS_OLDMTIME(inode) = fattr.mtime.seconds;
 	}
 	invalidate_inode_pages(inode);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov