[PATCH] set GFP_NOFS to avoid recursing back into file system code (4 of 6)

[email protected] Thu, 20 May 2004 16:50:26 -0500
Newsgroups gmane.comp.file-systems.jfs.patches
Message-ID <[email protected]>
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/05/19 15:28:02-05:00 [email protected] 
#   JFS: set GFP_NOFS to avoid recursing back into file system code
# 
diff -Nru a/fs/jfs/jfs_mount.c b/fs/jfs/jfs_mount.c
--- a/fs/jfs/jfs_mount.c	2004-05-20 16:47:36 -05:00
+++ b/fs/jfs/jfs_mount.c	2004-05-20 16:47:36 -05:00
@@ -288,6 +288,11 @@
 	 */
 	logMOUNT(sb);
 
+	/*
+	 * Set page cache allocation policy
+	 */
+	mapping_set_gfp_mask(sb->s_bdev->bd_inode->i_mapping, GFP_NOFS);
+
 	return rc;
 }
 
diff -Nru a/fs/jfs/jfs_umount.c b/fs/jfs/jfs_umount.c
--- a/fs/jfs/jfs_umount.c	2004-05-20 16:47:36 -05:00
+++ b/fs/jfs/jfs_umount.c	2004-05-20 16:47:36 -05:00
@@ -121,7 +121,10 @@
 	 * list (to signify skip logredo()).
 	 */
 	if (log) {		/* log = NULL if read-only mount */
-		rc = updateSuper(sb, FM_CLEAN);
+		updateSuper(sb, FM_CLEAN);
+
+		/* Restore default gfp_mask for bdev */
+		mapping_set_gfp_mask(bdev_mapping, GFP_USER);
 
 		/*
 		 * close log: 
@@ -167,6 +170,9 @@
 	filemap_fdatawait(bdev_mapping);
 
 	updateSuper(sb, FM_CLEAN);
+
+	/* Restore default gfp_mask for bdev */
+	mapping_set_gfp_mask(bdev_mapping, GFP_USER);
 
 	return lmLogClose(sb);
 }