* We need to make sure all of the "written" metapages
* actually make it to disk
*/
- filemap_fdatawait(sbi->ipbmap->i_mapping);
- filemap_fdatawait(sbi->ipimap->i_mapping);
- filemap_fdatawait(sb->s_bdev->bd_inode->i_mapping);
filemap_fdatawrite(sbi->ipbmap->i_mapping);
filemap_fdatawrite(sbi->ipimap->i_mapping);
- filemap_fdatawrite(sbi->direct_inode->i_mapping);
+ filemap_fdatawrite(sb->s_bdev->bd_inode->i_mapping);
filemap_fdatawait(sbi->ipbmap->i_mapping);
filemap_fdatawait(sbi->ipimap->i_mapping);
- filemap_fdatawait(sbi->direct_inode->i_mapping);
+ filemap_fdatawait(sb->s_bdev->bd_inode->i_mapping);
lrd.logtid = 0;
lrd.backchain = 0;
*/
dbSync(sbi->ipbmap);
diSync(sbi->ipimap);
- filemap_fdatawrite(sbi->direct_inode->i_mapping);
- filemap_fdatawait(sbi->direct_inode->i_mapping);
+
+ /*
+ * Note that we have to do this even if sync_blockdev() will
+ * do exactly the same a few instructions later: We can't
+ * mark the superblock clean before everything is flushed to
+ * disk.
+ */
- filemap_fdatawait(bdev_mapping);
+ filemap_fdatawrite(bdev_mapping);
- filemap_fdatawait(bdev_mapping);
updateSuper(sb, FM_CLEAN);
sbi->log = NULL;