On 03/19/15 at 10:48am, Lukáš Czerner wrote: > On Wed, 18 Mar 2015, Taesoo Kim wrote: > > > Date: Wed, 18 Mar 2015 13:39:31 -0400 > > From: Taesoo Kim <taesoo@xxxxxxxxxx> > > To: Lukáš Czerner <lczerner@xxxxxxxxxx> > > Cc: Taesoo Kim <tsgatesv@xxxxxxxxx>, tytso@xxxxxxx, > > linux-ext4@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, > > changwoo@xxxxxxxxxx, sanidhya@xxxxxxxxxx, blee@xxxxxxxxxx, > > csong84@xxxxxxxxxx > > Subject: Re: [PATCH 1/1] jbd2: fix incorrect unlock on j_list_lock > > > > > The patch looks good, thanks. > > > > Thank you. > > > > > Reviewed-by: Lukas Czerner <lczerner@xxxxxxxxxx> > > > > > > Btw, were you able to reproduce the problem, or have you seen the > > > problem in the wild ? Or did you just spot it in the code ? > > > > We are developing a static checker to spot inconsistent programming > > patterns; our first goal is to scan over existing filesystems and > > figure out how they are implemented differently (or similarly). We > > will report bugs in sequence as soon as our team confirm (just start > > sending patches to other fs). > > And this was found but it ? Our current prototype. > But anyway it sounds really interesting, do you have any more > information you can share about the project ? Project website, > description, or source code would be great :) We need 1-2 months to wrap up. I would say, right after the deadline, we plan to make the code/result publicly available :) Taesoo > Thanks! > -Lukas > > > > > Thanks, > > Taesoo > > > > > Thanks! > > > -Lukas > > > > > > > > > > > Signed-off-by: Taesoo Kim <tsgatesv@xxxxxxxxx> > > > > --- > > > > fs/jbd2/transaction.c | 3 ++- > > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c > > > > index 5f09370..edb7f59 100644 > > > > --- a/fs/jbd2/transaction.c > > > > +++ b/fs/jbd2/transaction.c > > > > @@ -1091,6 +1091,7 @@ int jbd2_journal_get_create_access(handle_t *handle, struct buffer_head *bh) > > > > JBUFFER_TRACE(jh, "file as BJ_Reserved"); > > > > spin_lock(&journal->j_list_lock); > > > > __jbd2_journal_file_buffer(jh, transaction, BJ_Reserved); > > > > + spin_unlock(&journal->j_list_lock); > > > > } else if (jh->b_transaction == journal->j_committing_transaction) { > > > > /* first access by this transaction */ > > > > jh->b_modified = 0; > > > > @@ -1098,8 +1099,8 @@ int jbd2_journal_get_create_access(handle_t *handle, struct buffer_head *bh) > > > > JBUFFER_TRACE(jh, "set next transaction"); > > > > spin_lock(&journal->j_list_lock); > > > > jh->b_next_transaction = transaction; > > > > + spin_unlock(&journal->j_list_lock); > > > > } > > > > - spin_unlock(&journal->j_list_lock); > > > > jbd_unlock_bh_state(bh); > > > > > > > > /* > > > > -- > > > > 2.3.3 > > > > > > > > -- > > > > 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 > > > > > > -- 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