X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Freiserfs%2Fjournal.c;h=4491fcf2a0e60b55ca66d61f222b4a807ca0b385;hb=e2f99018eb7b29954747a2dd78e9fc0c36a60f0f;hp=3f17ef844fb65ad61b373c2b746ae832a53d0aba;hpb=aaadff81195056c7c14e0d834b3318c624c0fd78;p=linux-2.6 diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index 3f17ef844f..4491fcf2a0 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c @@ -3925,10 +3925,13 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, flush = 1; } #ifdef REISERFS_PREALLOCATE - /* quota ops might need to nest, setup the journal_info pointer for them */ + /* quota ops might need to nest, setup the journal_info pointer for them + * and raise the refcount so that it is > 0. */ current->journal_info = th; + th->t_refcount++; reiserfs_discard_all_prealloc(th); /* it should not involve new blocks into * the transaction */ + th->t_refcount--; current->journal_info = th->t_handle_save; #endif