diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext2/super.c | 6 | ||||
-rw-r--r-- | fs/ext3/super.c | 5 | ||||
-rw-r--r-- | fs/ext4/super.c | 5 | ||||
-rw-r--r-- | fs/gfs2/super.c | 2 | ||||
-rw-r--r-- | fs/jfs/super.c | 5 | ||||
-rw-r--r-- | fs/reiserfs/super.c | 5 | ||||
-rw-r--r-- | fs/sync.c | 3 |
7 files changed, 28 insertions, 3 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index b3621cb7ea31..5df3d2d8169c 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -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"); |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 8c3a44b7c375..4ac304c55c53 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -2526,6 +2526,11 @@ static int ext3_sync_fs(struct super_block *sb, int wait) | |||
2526 | tid_t target; | 2526 | tid_t target; |
2527 | 2527 | ||
2528 | trace_ext3_sync_fs(sb, wait); | 2528 | trace_ext3_sync_fs(sb, wait); |
2529 | /* | ||
2530 | * Writeback quota in non-journalled quota case - journalled quota has | ||
2531 | * no dirty dquots | ||
2532 | */ | ||
2533 | dquot_writeback_dquots(sb, -1); | ||
2529 | if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) { | 2534 | if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) { |
2530 | if (wait) | 2535 | if (wait) |
2531 | log_wait_commit(EXT3_SB(sb)->s_journal, target); | 2536 | log_wait_commit(EXT3_SB(sb)->s_journal, target); |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index eb7aa3e4ef05..d8759401ecae 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -4325,6 +4325,11 @@ static int ext4_sync_fs(struct super_block *sb, int wait) | |||
4325 | 4325 | ||
4326 | trace_ext4_sync_fs(sb, wait); | 4326 | trace_ext4_sync_fs(sb, wait); |
4327 | flush_workqueue(sbi->dio_unwritten_wq); | 4327 | flush_workqueue(sbi->dio_unwritten_wq); |
4328 | /* | ||
4329 | * Writeback quota in non-journalled quota case - journalled quota has | ||
4330 | * no dirty dquots | ||
4331 | */ | ||
4332 | dquot_writeback_dquots(sb, -1); | ||
4328 | if (jbd2_journal_start_commit(sbi->s_journal, &target)) { | 4333 | if (jbd2_journal_start_commit(sbi->s_journal, &target)) { |
4329 | if (wait) | 4334 | if (wait) |
4330 | jbd2_log_wait_commit(sbi->s_journal, target); | 4335 | jbd2_log_wait_commit(sbi->s_journal, target); |
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 313c329490e2..f3d6bbfb32c5 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -952,6 +952,8 @@ restart: | |||
952 | static int gfs2_sync_fs(struct super_block *sb, int wait) | 952 | static int gfs2_sync_fs(struct super_block *sb, int wait) |
953 | { | 953 | { |
954 | struct gfs2_sbd *sdp = sb->s_fs_info; | 954 | struct gfs2_sbd *sdp = sb->s_fs_info; |
955 | |||
956 | gfs2_quota_sync(sb, -1); | ||
955 | if (wait && sdp) | 957 | if (wait && sdp) |
956 | gfs2_log_flush(sdp, NULL); | 958 | gfs2_log_flush(sdp, NULL); |
957 | return 0; | 959 | return 0; |
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 4a82950f412f..c55c7452d285 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -601,6 +601,11 @@ static int jfs_sync_fs(struct super_block *sb, int wait) | |||
601 | 601 | ||
602 | /* log == NULL indicates read-only mount */ | 602 | /* log == NULL indicates read-only mount */ |
603 | if (log) { | 603 | if (log) { |
604 | /* | ||
605 | * Write quota structures to quota file, sync_blockdev() will | ||
606 | * write them to disk later | ||
607 | */ | ||
608 | dquot_writeback_dquots(sb, -1); | ||
604 | jfs_flush_journal(log, wait); | 609 | jfs_flush_journal(log, wait); |
605 | jfs_syncpt(log, 0); | 610 | jfs_syncpt(log, 0); |
606 | } | 611 | } |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 651ce767b55d..7a37dabf5a96 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -68,6 +68,11 @@ static int reiserfs_sync_fs(struct super_block *s, int wait) | |||
68 | { | 68 | { |
69 | struct reiserfs_transaction_handle th; | 69 | struct reiserfs_transaction_handle th; |
70 | 70 | ||
71 | /* | ||
72 | * Writeback quota in non-journalled quota case - journalled quota has | ||
73 | * no dirty dquots | ||
74 | */ | ||
75 | dquot_writeback_dquots(s, -1); | ||
71 | reiserfs_write_lock(s); | 76 | reiserfs_write_lock(s); |
72 | if (!journal_begin(&th, s, 1)) | 77 | if (!journal_begin(&th, s, 1)) |
73 | if (!journal_end_sync(&th, s, 1)) | 78 | if (!journal_end_sync(&th, s, 1)) |
@@ -29,9 +29,6 @@ | |||
29 | */ | 29 | */ |
30 | static int __sync_filesystem(struct super_block *sb, int wait) | 30 | static int __sync_filesystem(struct super_block *sb, int wait) |
31 | { | 31 | { |
32 | if (sb->s_qcop && sb->s_qcop->quota_sync) | ||
33 | sb->s_qcop->quota_sync(sb, -1); | ||
34 | |||
35 | if (wait) | 32 | if (wait) |
36 | sync_inodes_sb(sb); | 33 | sync_inodes_sb(sb); |
37 | else | 34 | else |