public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-ext4@vger.kernel.org
Subject: Re: [PATCH] Fix commit block write in JBD
Date: Mon, 28 Jan 2008 14:18:54 +0100	[thread overview]
Message-ID: <20080128131854.GC14038@duck.suse.cz> (raw)
In-Reply-To: <20080126220207.9152ff8b.akpm@linux-foundation.org>

On Sat 26-01-08 22:02:07, Andrew Morton wrote:
> > On Wed, 23 Jan 2008 20:09:43 +0100 Jan Kara <jack@suse.cz> wrote:
> > 
> > Commit block is expected to have several copies of the header. Fix the
> > bug Andrew has spotted ages ago.
> > 
> 
> "ages" indeed.
> 
> > 
> > diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c
> > index 610264b..a69b240 100644
> > --- a/fs/jbd/commit.c
> > +++ b/fs/jbd/commit.c
> > @@ -116,9 +116,8 @@ static int journal_write_commit_record(journal_t *journal,
> >  
> >  	bh = jh2bh(descriptor);
> >  
> > -	/* AKPM: buglet - add `i' to tmp! */
> >  	for (i = 0; i < bh->b_size; i += 512) {
> > -		journal_header_t *tmp = (journal_header_t*)bh->b_data;
> > +		journal_header_t *tmp = (journal_header_t*)(bh->b_data+i);
> >  		tmp->h_magic = cpu_to_be32(JFS_MAGIC_NUMBER);
> >  		tmp->h_blocktype = cpu_to_be32(JFS_COMMIT_BLOCK);
> >  		tmp->h_sequence = cpu_to_be32(commit_transaction->t_tid);
> 
> But I don't think we can _use_ this feature now.  Because there are
> 100000000000 disks out there which didn't implement it.
> So why not just remove the loop and do a single write?
  Yes, but OTOH once the filesystem gets mounted with a new kernel, the
journal gets quickly rewritten and we'll have correct commit blocks there.
But since neither kernel nor e2fsprogs actually check for further sectors
(they check for the header just in the beginning of a block), I agree that
removing the loop completely is probably the best option. Nobody cared so
far so I guess they won't care in future as well. I'll send you a
replacement patch.

									Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

      reply	other threads:[~2008-01-28 13:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-23 19:09 [PATCH] Fix commit block write in JBD Jan Kara
2008-01-23 19:10 ` [PATCH] Fix commit block write in JBD2 Jan Kara
2008-01-23 21:18   ` Girish Shilamkar
2008-01-23 22:01     ` Jan Kara
2008-01-27  6:02 ` [PATCH] Fix commit block write in JBD Andrew Morton
2008-01-28 13:18   ` Jan Kara [this message]

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=20080128131854.GC14038@duck.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox