linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Theodore Ts'o <tytso@mit.edu>
To: stable@kernel.org
Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>,
	Theodore Ts'o <tytso@mit.edu>
Subject: [FOR-STABLE 10/20] jbd2: Fix buffer head leak when writing the commit block
Date: Sun, 16 Nov 2008 11:05:30 -0500	[thread overview]
Message-ID: <1226851540-8032-11-git-send-email-tytso@mit.edu> (raw)
In-Reply-To: <1226851540-8032-10-git-send-email-tytso@mit.edu>

Also make sure the buffer heads are marked clean before submitting bh
for writing.  The previous code was marking the buffer head dirty,
which would have forced an unneeded write (and seek) to the journal
for no good reason.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
(cherry picked from commit 45a90bfd90c1215bf824c0f705b409723f52361b)
---
 fs/jbd2/commit.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index f2ad061..6caf22d 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -126,8 +126,7 @@ static int journal_submit_commit_record(journal_t *journal,
 
 	JBUFFER_TRACE(descriptor, "submit commit block");
 	lock_buffer(bh);
-	get_bh(bh);
-	set_buffer_dirty(bh);
+	clear_buffer_dirty(bh);
 	set_buffer_uptodate(bh);
 	bh->b_end_io = journal_end_buffer_io_sync;
 
@@ -160,7 +159,7 @@ static int journal_submit_commit_record(journal_t *journal,
 		/* And try again, without the barrier */
 		lock_buffer(bh);
 		set_buffer_uptodate(bh);
-		set_buffer_dirty(bh);
+		clear_buffer_dirty(bh);
 		ret = submit_bh(WRITE, bh);
 	}
 	*cbh = bh;
-- 
1.6.0.4.8.g36f27.dirty


  reply	other threads:[~2008-11-16 16:37 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-16 16:05 [FOR-STABLE 0/20] Theodore Ts'o
2008-11-16 16:05 ` [FOR-STABLE 01/20] Update flex_bg free blocks and free inodes counters when resizing Theodore Ts'o
2008-11-16 16:05   ` [FOR-STABLE 02/20] ext4: fix #11321: create /proc/ext4/*/stats more carefully Theodore Ts'o
2008-11-16 16:05     ` [FOR-STABLE 03/20] jbd2: fix /proc setup for devices that contain '/' in their names Theodore Ts'o
2008-11-16 16:05       ` [FOR-STABLE 04/20] ext4: add missing unlock in ext4_check_descriptors() on error path Theodore Ts'o
2008-11-16 16:05         ` [FOR-STABLE 05/20] ext4: elevate write count for migrate ioctl Theodore Ts'o
2008-11-16 16:05           ` [FOR-STABLE 06/20] ext4: Renumber EXT4_IOC_MIGRATE Theodore Ts'o
2008-11-16 16:05             ` [FOR-STABLE 07/20] ext4/jbd2: Avoid WARN() messages when failing to write to the superblock Theodore Ts'o
2008-11-16 16:05               ` [FOR-STABLE 08/20] ext4: fix initialization of UNINIT bitmap blocks Theodore Ts'o
2008-11-16 16:05                 ` [FOR-STABLE 09/20] jbd2: abort instead of waiting for nonexistent transaction Theodore Ts'o
2008-11-16 16:05                   ` Theodore Ts'o [this message]
2008-11-16 16:05                     ` [FOR-STABLE 11/20] ext4: fix xattr deadlock Theodore Ts'o
2008-11-16 16:05                       ` [FOR-STABLE 12/20] ext4: Free ext4_prealloc_space using kmem_cache_free Theodore Ts'o
2008-11-16 16:05                         ` [FOR-STABLE 13/20] ext4: Do mballoc init before doing filesystem recovery Theodore Ts'o
2008-11-16 16:05                           ` [FOR-STABLE 14/20] ext4: Fix duplicate entries returned from getdents() system call Theodore Ts'o
2008-11-16 16:05                             ` [FOR-STABLE 15/20] jbd2: don't give up looking for space so easily in __jbd2_log_wait_for_space Theodore Ts'o
2008-11-16 16:05                               ` [FOR-STABLE 16/20] ext4: Convert to host order before using the values Theodore Ts'o
2008-11-16 16:05                                 ` [FOR-STABLE 17/20] ext4: wait on all pending commits in ext4_sync_fs() Theodore Ts'o
2008-11-16 16:05                                   ` [FOR-STABLE 18/20] ext4: calculate journal credits correctly Theodore Ts'o
2008-11-16 16:05                                     ` [FOR-STABLE 19/20] ext4: Mark the buffer_heads as dirty and uptodate after prepare_write Theodore Ts'o
2008-11-16 16:05                                       ` [FOR-STABLE 20/20] ext4: add checksum calculation when clearing UNINIT flag in ext4_new_inode Theodore Ts'o
2008-12-03 18:55                                         ` patch ext4-add-checksum-calculation-when-clearing-uninit-flag-in-ext4_new_inode.patch added to 2.6.27-stable tree gregkh
2008-12-03 18:56                                       ` patch ext4-mark-the-buffer_heads-as-dirty-and-uptodate-after-prepare_write.patch " gregkh
2008-12-03 18:55                                     ` patch ext4-calculate-journal-credits-correctly.patch " gregkh
2008-12-03 18:56                                   ` patch ext4-wait-on-all-pending-commits-in-ext4_sync_fs.patch " gregkh
2008-12-03 18:55                                 ` patch ext4-convert-to-host-order-before-using-the-values.patch " gregkh
2008-12-03 18:56                               ` patch jbd2-don-t-give-up-looking-for-space-so-easily-in-__jbd2_log_wait_for_space.patch " gregkh
2008-12-03 18:55                             ` patch ext4-fix-duplicate-entries-returned-from-getdents-system-call.patch " gregkh
2008-12-03 18:55                           ` patch ext4-do-mballoc-init-before-doing-filesystem-recovery.patch " gregkh
2008-12-03 18:55                         ` patch ext4-free-ext4_prealloc_space-using-kmem_cache_free.patch " gregkh
2008-12-03 18:55                       ` patch ext4-fix-xattr-deadlock.patch " gregkh
2008-12-03 18:56                     ` patch jbd2-fix-buffer-head-leak-when-writing-the-commit-block.patch " gregkh
2008-12-03 18:56                   ` patch jbd2-abort-instead-of-waiting-for-nonexistent-transaction.patch " gregkh
2008-12-03 18:55                 ` patch ext4-fix-initialization-of-uninit-bitmap-blocks.patch " gregkh
2008-12-03 18:56               ` patch ext4-jbd2-avoid-warn-messages-when-failing-to-write-to-the-superblock.patch " gregkh
2008-12-03 18:56             ` patch ext4-renumber-ext4_ioc_migrate.patch " gregkh
2008-12-03 18:55           ` patch ext4-elevate-write-count-for-migrate-ioctl.patch " gregkh
2008-12-03 18:55         ` patch ext4-add-missing-unlock-in-ext4_check_descriptors-on-error-path.patch " gregkh
2008-12-03 18:56       ` patch jbd2-fix-proc-setup-for-devices-that-contain-in-their-names.patch " gregkh
2008-12-03 18:55     ` patch ext4-fix-11321-create-proc-ext4-stats-more-carefully.patch " gregkh
2008-12-03 18:56   ` patch ext4-update-flex_bg-free-blocks-and-free-inodes-counters-when-resizing.patch " gregkh

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=1226851540-8032-11-git-send-email-tytso@mit.edu \
    --to=tytso@mit.edu \
    --cc=linux-ext4@vger.kernel.org \
    --cc=stable@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).