patch-2.3.29 linux/fs/nfs/dir.c

Next file: linux/fs/nfs/file.c
Previous file: linux/fs/ncpfs/mmap.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.28/linux/fs/nfs/dir.c linux/fs/nfs/dir.c
@@ -346,8 +346,9 @@
 		goto repeat;
 	}
 
+	kmap(page);
 	rd_args.fh = NFS_FH(dentry);
-	rd_res.buffer = (char *)page_address(page_cache);
+	rd_res.buffer = (char *)page_address(page);
 	rd_res.bufsiz = PAGE_CACHE_SIZE;
 	rd_res.cookie = *cookiep;
 	do {
@@ -365,6 +366,8 @@
 		goto error;
 
 	SetPageUptodate(page);
+unmap_out:
+	kunmap(page);
 unlock_out:
 	UnlockPage(page);
 out:
@@ -372,7 +375,7 @@
 
 error:
 	SetPageError(page);
-	goto unlock_out;
+	goto unmap_out;
 }
 
 /* Seek up to dirent assosciated with the passed in cookie,
@@ -438,8 +441,10 @@
 	if (!Page_Uptodate(page))
 		goto dirent_read_error;
 success:
+	kmap(page);
 	filp->f_pos = nfs_do_filldir((__u32 *) page_address(page),
 				     filp->f_pos, dirent, filldir);
+	kunmap(page);
 	page_cache_release(page);
 	return 0;
 
@@ -681,6 +686,7 @@
 	NULL			/* d_iput */
 };
 
+#if 0 /* dead code */
 #ifdef NFS_PARANOIA
 /*
  * Display all dentries holding the specified inode.
@@ -702,7 +708,8 @@
 			unhashed);
 	}
 }
-#endif
+#endif /* NFS_PARANOIA */
+#endif /* 0 */
 
 static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry)
 {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)