diff --git a/[refs] b/[refs] index f5fcf32281d5..cafedc7c4e0b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c8365ecc57f87e4d982c3fe59a4c1b985484e7f +refs/heads/master: ef43bc4fc32bec8fda7bae8948b774616dc9e496 diff --git a/trunk/fs/reiserfs/journal.c b/trunk/fs/reiserfs/journal.c index 3f17ef844fb6..4491fcf2a0e6 100644 --- a/trunk/fs/reiserfs/journal.c +++ b/trunk/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