On Mon 09-08-10 15:05:13, Ted Ts'o wrote: > On Mon, Aug 09, 2010 at 07:02:16PM +0200, Jan Kara wrote: > > spin_lock(&journal->j_state_lock); > > spin_lock(&transaction->t_handle_lock); > > - transaction->t_outstanding_credits -= handle->h_buffer_credits; > > - transaction->t_updates--; > > - > > - if (!transaction->t_updates) > > + atomic_sub(handle->h_buffer_credits, > > + &transaction->t_outstanding_credits); > > + if (atomic_dec_and_test(&transaction->t_updates)) > > > > After this a transaction can disappear so subsequent > > __jbd2_log_start_commit shouldn't dereference transaction->t_tid, > > right? > > I think it should be ok because we're holding j_state_lock(), so the > transaction can't disappear until we release the j_state_lock. Ah, OK. You're right. I just thought we eventually want to remove the lock but you're right that currently the code is fine. Sorry for the noise. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html