From patchwork Sun Sep 21 00:53:47 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Theodore Ts'o X-Patchwork-Id: 770 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 26CDFDDE41 for ; Sun, 21 Sep 2008 13:16:00 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752419AbYIUDPz (ORCPT ); Sat, 20 Sep 2008 23:15:55 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752425AbYIUDPz (ORCPT ); Sat, 20 Sep 2008 23:15:55 -0400 Received: from www.church-of-our-saviour.org ([69.25.196.31]:40965 "EHLO thunker.thunk.org" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752339AbYIUDPy (ORCPT ); Sat, 20 Sep 2008 23:15:54 -0400 Received: from root (helo=closure.thunk.org) by thunker.thunk.org with local-esmtp (Exim 4.50 #1 (Debian)) id 1KhFQP-0001fl-2b; Sat, 20 Sep 2008 23:15:53 -0400 Received: from tytso by closure.thunk.org with local (Exim 4.69) (envelope-from ) id 1KhDCt-0004GB-KI; Sat, 20 Sep 2008 20:53:47 -0400 To: linux-ext4@vger.kernel.org Subject: [PATCH] ext4: Enable asynchronous commits by default From: "Theodore Ts'o" Full-Name: Theodore Ts'o Phone: (781) 391-3464 Message-Id: Date: Sat, 20 Sep 2008 20:53:47 -0400 X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@mit.edu X-SA-Exim-Scanned: No (on thunker.thunk.org); SAEximRunCond expanded to false Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Signed-off-by: "Theodore Ts'o" Acked-by: Eric Sandeen --- -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/fs/ext4/super.c b/fs/ext4/super.c index fb5766e..e6d5af7 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -747,8 +747,15 @@ static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) */ seq_puts(seq, ",barrier="); seq_puts(seq, test_opt(sb, BARRIER) ? "1" : "0"); + /* journal_async_commit enables journal_checksum internally */ if (test_opt(sb, JOURNAL_ASYNC_COMMIT)) seq_puts(seq, ",journal_async_commit"); + else { + seq_puts(seq, ",journal_sync_commit"); + if (test_opt(sb, JOURNAL_CHECKSUM)) + seq_puts(seq, ",journal_checksum"); + } + if (test_opt(sb, NOBH)) seq_puts(seq, ",nobh"); if (!test_opt(sb, EXTENTS)) @@ -902,6 +909,7 @@ enum { Opt_reservation, Opt_noreservation, Opt_noload, Opt_nobh, Opt_bh, Opt_commit, Opt_journal_update, Opt_journal_inum, Opt_journal_dev, Opt_journal_checksum, Opt_journal_async_commit, + Opt_journal_sync_commit, Opt_abort, Opt_data_journal, Opt_data_ordered, Opt_data_writeback, Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota, @@ -944,6 +952,7 @@ static match_table_t tokens = { {Opt_journal_dev, "journal_dev=%u"}, {Opt_journal_checksum, "journal_checksum"}, {Opt_journal_async_commit, "journal_async_commit"}, + {Opt_journal_sync_commit, "journal_sync_commit"}, {Opt_abort, "abort"}, {Opt_data_journal, "data=journal"}, {Opt_data_ordered, "data=ordered"}, @@ -1145,7 +1154,9 @@ static int parse_options(char *options, struct super_block *sb, break; case Opt_journal_async_commit: set_opt(sbi->s_mount_opt, JOURNAL_ASYNC_COMMIT); - set_opt(sbi->s_mount_opt, JOURNAL_CHECKSUM); + break; + case Opt_journal_sync_commit: + clear_opt(sbi->s_mount_opt, JOURNAL_ASYNC_COMMIT); break; case Opt_noload: set_opt(sbi->s_mount_opt, NOLOAD); @@ -2026,6 +2037,11 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) */ set_opt(sbi->s_mount_opt, DELALLOC); + /* + * enable async commit by default + * Use -o sync_commit to turn it off + */ + set_opt(sbi->s_mount_opt, JOURNAL_ASYNC_COMMIT); if (!parse_options((char *) data, sb, &journal_inum, &journal_devnum, NULL, 0))