diff options
Diffstat (limited to 'fs/ext2/super.c')
-rw-r--r-- | fs/ext2/super.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index b3621cb7ea31..9f311d27b16f 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -771,13 +771,13 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) | |||
771 | err = -ENOMEM; | 771 | err = -ENOMEM; |
772 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); | 772 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); |
773 | if (!sbi) | 773 | if (!sbi) |
774 | goto failed_unlock; | 774 | goto failed; |
775 | 775 | ||
776 | sbi->s_blockgroup_lock = | 776 | sbi->s_blockgroup_lock = |
777 | kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL); | 777 | kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL); |
778 | if (!sbi->s_blockgroup_lock) { | 778 | if (!sbi->s_blockgroup_lock) { |
779 | kfree(sbi); | 779 | kfree(sbi); |
780 | goto failed_unlock; | 780 | goto failed; |
781 | } | 781 | } |
782 | sb->s_fs_info = sbi; | 782 | sb->s_fs_info = sbi; |
783 | sbi->s_sb_block = sb_block; | 783 | sbi->s_sb_block = sb_block; |
@@ -1130,7 +1130,7 @@ failed_sbi: | |||
1130 | sb->s_fs_info = NULL; | 1130 | sb->s_fs_info = NULL; |
1131 | kfree(sbi->s_blockgroup_lock); | 1131 | kfree(sbi->s_blockgroup_lock); |
1132 | kfree(sbi); | 1132 | kfree(sbi); |
1133 | failed_unlock: | 1133 | failed: |
1134 | return ret; | 1134 | return ret; |
1135 | } | 1135 | } |
1136 | 1136 | ||
@@ -1184,6 +1184,12 @@ static int ext2_sync_fs(struct super_block *sb, int wait) | |||
1184 | struct ext2_sb_info *sbi = EXT2_SB(sb); | 1184 | struct ext2_sb_info *sbi = EXT2_SB(sb); |
1185 | struct ext2_super_block *es = EXT2_SB(sb)->s_es; | 1185 | struct ext2_super_block *es = EXT2_SB(sb)->s_es; |
1186 | 1186 | ||
1187 | /* | ||
1188 | * Write quota structures to quota file, sync_blockdev() will write | ||
1189 | * them to disk later | ||
1190 | */ | ||
1191 | dquot_writeback_dquots(sb, -1); | ||
1192 | |||
1187 | spin_lock(&sbi->s_lock); | 1193 | spin_lock(&sbi->s_lock); |
1188 | if (es->s_state & cpu_to_le16(EXT2_VALID_FS)) { | 1194 | if (es->s_state & cpu_to_le16(EXT2_VALID_FS)) { |
1189 | ext2_debug("setting valid to 0\n"); | 1195 | ext2_debug("setting valid to 0\n"); |