All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Monakhov <dmonakhov@openvz.org>
To: linux-ext4@vger.kernel.org
Cc: jack@suse.cz, Dmitry Monakhov <dmonakhov@openvz.org>
Subject: [PATCH 4/6] ext3: fix data integrity for ext4_sync_fs
Date: Tue, 28 May 2013 13:18:59 +0400	[thread overview]
Message-ID: <1369732741-26070-5-git-send-email-dmonakhov@openvz.org> (raw)
In-Reply-To: <1369732741-26070-1-git-send-email-dmonakhov@openvz.org>

Inode's data or non journaled quota may be written w/o jounral so we must
send a barrier at the end of ext3_sync_fs. But it can be skipped if journal
commit will do it for us.

changes from v1:
 skip barrier for async mode

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
---
 fs/ext3/super.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index fb5120a..c8a4e17 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -2521,6 +2521,7 @@ int ext3_force_commit(struct super_block *sb)
 static int ext3_sync_fs(struct super_block *sb, int wait)
 {
 	tid_t target;
+	int ret = 0;
 
 	trace_ext3_sync_fs(sb, wait);
 	/*
@@ -2528,11 +2529,14 @@ static int ext3_sync_fs(struct super_block *sb, int wait)
 	 * no dirty dquots
 	 */
 	dquot_writeback_dquots(sb, -1);
-	if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
-		if (wait)
-			log_wait_commit(EXT3_SB(sb)->s_journal, target);
+	if (wait) {
+		if (journal_start_commit(EXT3_SB(sb)->s_journal, &target))
+			ret = log_wait_commit(EXT3_SB(sb)->s_journal, target);
+		else
+			ret = blkdev_issue_flush(sb->s_bdev, GFP_KERNEL, NULL);
 	}
-	return 0;
+
+	return ret;
 }
 
 /*
-- 
1.7.1


  parent reply	other threads:[~2013-05-28  9:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-28  9:18 [PATCH 0/6] ext3/4 data integrity fixes Dmitry Monakhov
2013-05-28  9:18 ` [PATCH 1/6] jbd2: optimize jbd2_journal_force_commit Dmitry Monakhov
2013-05-28 21:22   ` Jan Kara
2013-06-03 11:16     ` Dmitry Monakhov
2013-06-10 13:07       ` Theodore Ts'o
2013-06-10 13:18         ` Dmitry Monakhov
2013-06-10 13:53           ` Theodore Ts'o
2013-05-28  9:18 ` [PATCH 2/6] ext4: fix data integrity for ext4_sync_fs Dmitry Monakhov
2013-05-28 21:51   ` Jan Kara
2013-06-03 11:30     ` Dmitry Monakhov
2013-05-28  9:18 ` [PATCH 3/6] jbd: optimize journal_force_commit Dmitry Monakhov
2013-05-28  9:18 ` Dmitry Monakhov [this message]
2013-05-28 21:40   ` [PATCH 4/6] ext3: fix data integrity for ext4_sync_fs Jan Kara
2013-05-28  9:19 ` [PATCH 5/6] ext4: Fix fsync error handling after filesystem abort Dmitry Monakhov
2013-05-28 21:29   ` Jan Kara
2013-05-28  9:19 ` [PATCH 6/6] ext3: " Dmitry Monakhov
2013-05-28 21:33   ` Jan Kara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1369732741-26070-5-git-send-email-dmonakhov@openvz.org \
    --to=dmonakhov@openvz.org \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.