* Lost JBD fix
@ 2007-07-09 18:14 Jan Kara
2007-07-11 17:55 ` Chuck Ebbert
0 siblings, 1 reply; 5+ messages in thread
From: Jan Kara @ 2007-07-09 18:14 UTC (permalink / raw)
To: Andrew Morton; +Cc: Kirill Korotaev, devel, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 404 bytes --]
Hi Andrew,
it seems we've accidentally lost one JBD fix (probably it was my mistake
when rediffing some checkpointing changes) as Kirill has noted. A transaction
can currently be released when there are still some buffers on one of its
checkpointing lists. Attached patch should fix it (it still seems to apply
fine). Please apply it. Thanks.
Honza
--
Jan Kara <jack@suse.cz>
SuSE CR Labs
[-- Attachment #2: jbd-2.6.16-rc1-2-commit_remove_trans_fix.diff --]
[-- Type: text/x-patch, Size: 837 bytes --]
We have to check that also the second checkpoint list is non-empty before
dropping the transaction.
Signed-off-by: Jan Kara <jack@suse.cz>
diff -rupX /home/jack/.kerndiffexclude linux-2.6.16-rc1/fs/jbd/commit.c linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c
--- linux-2.6.16-rc1/fs/jbd/commit.c 2006-01-15 00:20:12.000000000 +0100
+++ linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c 2006-01-17 23:35:19.000000000 +0100
@@ -829,7 +829,8 @@ restart_loop:
journal->j_committing_transaction = NULL;
spin_unlock(&journal->j_state_lock);
- if (commit_transaction->t_checkpoint_list == NULL) {
+ if (commit_transaction->t_checkpoint_list == NULL &&
+ commit_transaction->t_checkpoint_io_list == NULL) {
__journal_drop_transaction(journal, commit_transaction);
} else {
if (journal->j_checkpoint_transactions == NULL) {
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Lost JBD fix
2007-07-09 18:14 Lost JBD fix Jan Kara
@ 2007-07-11 17:55 ` Chuck Ebbert
2007-07-12 6:50 ` Jens Axboe
2007-07-13 17:16 ` Jan Kara
0 siblings, 2 replies; 5+ messages in thread
From: Chuck Ebbert @ 2007-07-11 17:55 UTC (permalink / raw)
To: Jan Kara; +Cc: Andrew Morton, Kirill Korotaev, devel, linux-kernel
On 07/09/2007 02:14 PM, Jan Kara wrote:
> Hi Andrew,
>
> it seems we've accidentally lost one JBD fix (probably it was my mistake
> when rediffing some checkpointing changes) as Kirill has noted. A transaction
> can currently be released when there are still some buffers on one of its
> checkpointing lists. Attached patch should fix it (it still seems to apply
> fine). Please apply it. Thanks.
>
> Honza
>
>
> ------------------------------------------------------------------------
>
> We have to check that also the second checkpoint list is non-empty before
> dropping the transaction.
>
> Signed-off-by: Jan Kara <jack@suse.cz>
>
> diff -rupX /home/jack/.kerndiffexclude linux-2.6.16-rc1/fs/jbd/commit.c linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c
> --- linux-2.6.16-rc1/fs/jbd/commit.c 2006-01-15 00:20:12.000000000 +0100
> +++ linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c 2006-01-17 23:35:19.000000000 +0100
> @@ -829,7 +829,8 @@ restart_loop:
> journal->j_committing_transaction = NULL;
> spin_unlock(&journal->j_state_lock);
>
> - if (commit_transaction->t_checkpoint_list == NULL) {
> + if (commit_transaction->t_checkpoint_list == NULL &&
> + commit_transaction->t_checkpoint_io_list == NULL) {
> __journal_drop_transaction(journal, commit_transaction);
> } else {
> if (journal->j_checkpoint_transactions == NULL) {
Critical bugfix -- 2.6.22-stable (no earlier versions) should get
this too, right?
If so, can we get this merged into 2.6.23-rc soon?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Lost JBD fix
2007-07-11 17:55 ` Chuck Ebbert
@ 2007-07-12 6:50 ` Jens Axboe
2007-07-12 6:56 ` Andrew Morton
2007-07-13 17:16 ` Jan Kara
1 sibling, 1 reply; 5+ messages in thread
From: Jens Axboe @ 2007-07-12 6:50 UTC (permalink / raw)
To: Chuck Ebbert
Cc: Jan Kara, Andrew Morton, Kirill Korotaev, devel, linux-kernel
On Wed, Jul 11 2007, Chuck Ebbert wrote:
> On 07/09/2007 02:14 PM, Jan Kara wrote:
> > Hi Andrew,
> >
> > it seems we've accidentally lost one JBD fix (probably it was my mistake
> > when rediffing some checkpointing changes) as Kirill has noted. A transaction
> > can currently be released when there are still some buffers on one of its
> > checkpointing lists. Attached patch should fix it (it still seems to apply
> > fine). Please apply it. Thanks.
> >
> > Honza
> >
> >
> > ------------------------------------------------------------------------
> >
> > We have to check that also the second checkpoint list is non-empty before
> > dropping the transaction.
> >
> > Signed-off-by: Jan Kara <jack@suse.cz>
> >
> > diff -rupX /home/jack/.kerndiffexclude linux-2.6.16-rc1/fs/jbd/commit.c linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c
> > --- linux-2.6.16-rc1/fs/jbd/commit.c 2006-01-15 00:20:12.000000000 +0100
> > +++ linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c 2006-01-17 23:35:19.000000000 +0100
> > @@ -829,7 +829,8 @@ restart_loop:
> > journal->j_committing_transaction = NULL;
> > spin_unlock(&journal->j_state_lock);
> >
> > - if (commit_transaction->t_checkpoint_list == NULL) {
> > + if (commit_transaction->t_checkpoint_list == NULL &&
> > + commit_transaction->t_checkpoint_io_list == NULL) {
> > __journal_drop_transaction(journal, commit_transaction);
> > } else {
> > if (journal->j_checkpoint_transactions == NULL) {
>
> Critical bugfix -- 2.6.22-stable (no earlier versions) should get
> this too, right?
And don't forget that we have a jbd2/ clone as well, for the hugely
succesful ext4 project as well.
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Lost JBD fix
2007-07-12 6:50 ` Jens Axboe
@ 2007-07-12 6:56 ` Andrew Morton
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Morton @ 2007-07-12 6:56 UTC (permalink / raw)
To: Jens Axboe; +Cc: Chuck Ebbert, Jan Kara, Kirill Korotaev, devel, linux-kernel
On Thu, 12 Jul 2007 08:50:11 +0200 Jens Axboe <jens.axboe@oracle.com> wrote:
> > > - if (commit_transaction->t_checkpoint_list == NULL) {
> > > + if (commit_transaction->t_checkpoint_list == NULL &&
> > > + commit_transaction->t_checkpoint_io_list == NULL) {
> > > __journal_drop_transaction(journal, commit_transaction);
> > > } else {
> > > if (journal->j_checkpoint_transactions == NULL) {
> >
> > Critical bugfix -- 2.6.22-stable (no earlier versions) should get
> > this too, right?
>
> And don't forget that we have a jbd2/ clone as well, for the hugely
> succesful ext4 project as well.
Yeah, I did that. Again.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Lost JBD fix
2007-07-11 17:55 ` Chuck Ebbert
2007-07-12 6:50 ` Jens Axboe
@ 2007-07-13 17:16 ` Jan Kara
1 sibling, 0 replies; 5+ messages in thread
From: Jan Kara @ 2007-07-13 17:16 UTC (permalink / raw)
To: Chuck Ebbert; +Cc: Andrew Morton, Kirill Korotaev, devel, linux-kernel
On Wed 11-07-07 13:55:30, Chuck Ebbert wrote:
> On 07/09/2007 02:14 PM, Jan Kara wrote:
> > Hi Andrew,
> >
> > it seems we've accidentally lost one JBD fix (probably it was my mistake
> > when rediffing some checkpointing changes) as Kirill has noted. A transaction
> > can currently be released when there are still some buffers on one of its
> > checkpointing lists. Attached patch should fix it (it still seems to apply
> > fine). Please apply it. Thanks.
> >
> > Honza
> >
> >
> > ------------------------------------------------------------------------
> >
> > We have to check that also the second checkpoint list is non-empty before
> > dropping the transaction.
> >
> > Signed-off-by: Jan Kara <jack@suse.cz>
> >
> > diff -rupX /home/jack/.kerndiffexclude linux-2.6.16-rc1/fs/jbd/commit.c linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c
> > --- linux-2.6.16-rc1/fs/jbd/commit.c 2006-01-15 00:20:12.000000000 +0100
> > +++ linux-2.6.16-rc1-1-checkpoint-fix/fs/jbd/commit.c 2006-01-17 23:35:19.000000000 +0100
> > @@ -829,7 +829,8 @@ restart_loop:
> > journal->j_committing_transaction = NULL;
> > spin_unlock(&journal->j_state_lock);
> >
> > - if (commit_transaction->t_checkpoint_list == NULL) {
> > + if (commit_transaction->t_checkpoint_list == NULL &&
> > + commit_transaction->t_checkpoint_io_list == NULL) {
> > __journal_drop_transaction(journal, commit_transaction);
> > } else {
> > if (journal->j_checkpoint_transactions == NULL) {
>
> Critical bugfix -- 2.6.22-stable (no earlier versions) should get
> this too, right?
Yes, the bugfix is probably obvious enough to go into -stable.
Honza
--
Jan Kara <jack@suse.cz>
SuSE CR Labs
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-13 17:01 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-09 18:14 Lost JBD fix Jan Kara
2007-07-11 17:55 ` Chuck Ebbert
2007-07-12 6:50 ` Jens Axboe
2007-07-12 6:56 ` Andrew Morton
2007-07-13 17:16 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox