diff options
author | Jan Kara <[email protected]> | 2009-06-09 16:26:26 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2009-06-09 16:59:03 -0700 |
commit | a61d90d75d0f9e86432c45b496b4b0fbf0fd03dc (patch) | |
tree | 85d557e9d67cbad0347c6f12f7a60c474e485f7c /arch/m32r/include/asm/signal.h | |
parent | 463aea1a1c49f1a7d4b50656dfd6c8bb33358b1b (diff) |
jbd: fix race in buffer processing in commit code
In commit code, we scan buffers attached to a transaction. During this
scan, we sometimes have to drop j_list_lock and then we recheck whether
the journal buffer head didn't get freed by journal_try_to_free_buffers().
But checking for buffer_jbd(bh) isn't enough because a new journal head
could get attached to our buffer head. So add a check whether the journal
head remained the same and whether it's still at the same transaction and
list.
This is a nasty bug and can cause problems like memory corruption (use after
free) or trigger various assertions in JBD code (observed).
Signed-off-by: Jan Kara <[email protected]>
Cc: <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'arch/m32r/include/asm/signal.h')
0 files changed, 0 insertions, 0 deletions