aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jfs
diff options
context:
space:
mode:
authorDave Kleikamp <dave.kleikamp@oracle.com>2011-08-01 12:41:00 -0500
committerDave Kleikamp <dave.kleikamp@oracle.com>2011-08-01 12:41:00 -0500
commit1c8007b0769d37aa5fcb343b383b0af89ade2f71 (patch)
treedc7eecc1229a417156edf353ef269e08bf8795f0 /fs/jfs
parent3da3f872aa175f59e20766ed30aaea67fd4fa7d1 (diff)
downloadkernel_goldelico_gta04-1c8007b0769d37aa5fcb343b383b0af89ade2f71.zip
kernel_goldelico_gta04-1c8007b0769d37aa5fcb343b383b0af89ade2f71.tar.gz
kernel_goldelico_gta04-1c8007b0769d37aa5fcb343b383b0af89ade2f71.tar.bz2
jfs: flush journal completely before releasing metadata inodes
This fixes a race during unmount. We need to not only make sure that the journal is completely written, but that the metadata changes make it to disk before releasing ipimap and ipbmap. Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Diffstat (limited to 'fs/jfs')
-rw-r--r--fs/jfs/jfs_umount.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/jfs/jfs_umount.c b/fs/jfs/jfs_umount.c
index adcf92d..7971f37 100644
--- a/fs/jfs/jfs_umount.c
+++ b/fs/jfs/jfs_umount.c
@@ -68,7 +68,7 @@ int jfs_umount(struct super_block *sb)
/*
* Wait for outstanding transactions to be written to log:
*/
- jfs_flush_journal(log, 1);
+ jfs_flush_journal(log, 2);
/*
* close fileset inode allocation map (aka fileset inode)
@@ -146,7 +146,7 @@ int jfs_umount_rw(struct super_block *sb)
*
* remove file system from log active file system list.
*/
- jfs_flush_journal(log, 1);
+ jfs_flush_journal(log, 2);
/*
* Make sure all metadata makes it to disk