diff mbox

JBD2: round commit timer up to avoid uncommitted transaction

Message ID 20090730180035.GC4231@webber.adilger.int
State Accepted, archived
Headers show

Commit Message

Andreas Dilger July 30, 2009, 6 p.m. UTC
On Jul 30, 2009  19:47 +0200, Jan Kara wrote:
> > jbd and jbd2 fixes: fix jiffie rounding in jbd commit timer setup code.
> > Rounding down could cause the timer to be fired before the corresponding
> > transaction has expired.  That transaction can stay not committed forever if
> > no new transaction is created or expicit sync/umount happens.
> > 
> > Signed-off-by: Alex Zhuravlev (Tomas) <alex.zhuravlev@sun.com>
> > Signed-off-by: Andreas Dilger <adilger@sun.com>
>
>   Looks fine. You can add:
> Acked-by: Jan Kara <jack@suse.cz>
>   How about a similar JBD fix?


Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

--
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

Comments

Jan Kara July 30, 2009, 6:11 p.m. UTC | #1
> On Jul 30, 2009  19:47 +0200, Jan Kara wrote:
> > > jbd and jbd2 fixes: fix jiffie rounding in jbd commit timer setup code.
> > > Rounding down could cause the timer to be fired before the corresponding
> > > transaction has expired.  That transaction can stay not committed forever if
> > > no new transaction is created or expicit sync/umount happens.
> > > 
> > > Signed-off-by: Alex Zhuravlev (Tomas) <alex.zhuravlev@sun.com>
> > > Signed-off-by: Andreas Dilger <adilger@sun.com>
> >
> >   Looks fine. You can add:
> > Acked-by: Jan Kara <jack@suse.cz>
> >   How about a similar JBD fix?
> 
> Index: linux-2.6.27.21-0.1/fs/jbd/transaction.c
> ===================================================================
> --- linux-2.6.27.21-0.1.orig/fs/jbd/transaction.c	2009-06-10 11:11:41.000000000 -0600
> +++ linux-2.6.27.21-0.1/fs/jbd/transaction.c	2009-06-10 11:12:32.000000000 -0600
> @@ -54,7 +54,7 @@
>  	spin_lock_init(&transaction->t_inode_list);
>  
>  	/* Set up the commit timer for the new transaction. */
> -	journal->j_commit_timer.expires = round_jiffies(transaction->t_expires);
> +	journal->j_commit_timer.expires = round_jiffies_up(transaction->t_expires);
>  	add_timer(&journal->j_commit_timer);
>  
>  	J_ASSERT(journal->j_running_transaction == NULL);
  Thanks. Copied over the changelog, added your Signed-off-by and merged
into my tree...

									Honza
diff mbox

Patch

Index: linux-2.6.27.21-0.1/fs/jbd/transaction.c
===================================================================
--- linux-2.6.27.21-0.1.orig/fs/jbd/transaction.c	2009-06-10 11:11:41.000000000 -0600
+++ linux-2.6.27.21-0.1/fs/jbd/transaction.c	2009-06-10 11:12:32.000000000 -0600
@@ -54,7 +54,7 @@ 
 	spin_lock_init(&transaction->t_inode_list);
 
 	/* Set up the commit timer for the new transaction. */
-	journal->j_commit_timer.expires = round_jiffies(transaction->t_expires);
+	journal->j_commit_timer.expires = round_jiffies_up(transaction->t_expires);
 	add_timer(&journal->j_commit_timer);
 
 	J_ASSERT(journal->j_running_transaction == NULL);