vserver 2.0 rc7
[linux-2.6.git] / fs / jfs / jfs_umount.c
index f31a9e3..5cf9178 100644 (file)
@@ -49,7 +49,6 @@
  */
 int jfs_umount(struct super_block *sb)
 {
-       struct address_space *bdev_mapping = sb->s_bdev->bd_inode->i_mapping;
        struct jfs_sb_info *sbi = JFS_SBI(sb);
        struct inode *ipbmap = sbi->ipbmap;
        struct inode *ipimap = sbi->ipimap;
@@ -109,8 +108,8 @@ int jfs_umount(struct super_block *sb)
         * Make sure all metadata makes it to disk before we mark
         * the superblock as clean
         */
-       filemap_fdatawrite(bdev_mapping);
-       filemap_fdatawait(bdev_mapping);
+       filemap_fdatawrite(sbi->direct_inode->i_mapping);
+       filemap_fdatawait(sbi->direct_inode->i_mapping);
 
        /*
         * ensure all file system file pages are propagated to their
@@ -123,9 +122,6 @@ int jfs_umount(struct super_block *sb)
        if (log) {              /* log = NULL if read-only mount */
                updateSuper(sb, FM_CLEAN);
 
-               /* Restore default gfp_mask for bdev */
-               mapping_set_gfp_mask(bdev_mapping, GFP_USER);
-
                /*
                 * close log: 
                 *
@@ -140,7 +136,6 @@ int jfs_umount(struct super_block *sb)
 
 int jfs_umount_rw(struct super_block *sb)
 {
-       struct address_space *bdev_mapping = sb->s_bdev->bd_inode->i_mapping;
        struct jfs_sb_info *sbi = JFS_SBI(sb);
        struct jfs_log *log = sbi->log;
 
@@ -166,13 +161,10 @@ int jfs_umount_rw(struct super_block *sb)
         * mark the superblock clean before everything is flushed to
         * disk.
         */
-       filemap_fdatawrite(bdev_mapping);
-       filemap_fdatawait(bdev_mapping);
+       filemap_fdatawrite(sbi->direct_inode->i_mapping);
+       filemap_fdatawait(sbi->direct_inode->i_mapping);
 
        updateSuper(sb, FM_CLEAN);
 
-       /* Restore default gfp_mask for bdev */
-       mapping_set_gfp_mask(bdev_mapping, GFP_USER);
-
        return lmLogClose(sb);
 }