Messages in this thread | | | Date | Fri, 19 May 2006 14:33:53 +0200 | From | Zoltan Menyhart <> | Subject | Re: [PATCH] Change ll_rw_block() calls in JBD |
| |
Jan Kara wrote:
>>>+ if (!buffer_jbd(bh) || jh->b_jlist != BJ_SyncData) { >> >>Who (else) can take away the journal head, remove our "jh" from the >>synch. data list? > > For two of the above comments: Under memory pressure data buffers can > be written out earlier and then released by __journal_try_to_free_buffer() > as they are not dirty any more. The above checks protect us against this.
Assume "bh" has been set free in the mean time. Assume it is now used for another transaction (maybe for another file system).
The first part of the test should verify not only if "bh" is used for _any_ journal head but if it is exactly for our current one:
if (buffer_jbd(bh) != jh || ...
Thanks,
Zoltan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |