@@ -1160,6 +1160,8 @@ static void ext2_clear_super_error(struct super_block *sb)
static void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es,
int wait)
{
+ struct ext2_sb_info *sbi = EXT2_SB(sb);
+
sb->s_dirt = 0;
/*
* Make sure we first mark the superblock as clean and then start
@@ -1168,15 +1170,15 @@ static void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es,
smp_wmb();
ext2_clear_super_error(sb);
- spin_lock(&EXT2_SB(sb)->s_lock);
+ spin_lock(&sbi->s_lock);
es->s_free_blocks_count = cpu_to_le32(ext2_count_free_blocks(sb));
es->s_free_inodes_count = cpu_to_le32(ext2_count_free_inodes(sb));
es->s_wtime = cpu_to_le32(get_seconds());
/* unlock before we do IO */
- spin_unlock(&EXT2_SB(sb)->s_lock);
- mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
+ spin_unlock(&sbi->s_lock);
+ mark_buffer_dirty(sbi->s_sbh);
if (wait)
- sync_dirty_buffer(EXT2_SB(sb)->s_sbh);
+ sync_dirty_buffer(sbi->s_sbh);
}
/*