summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-07-02 08:50:04 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-07-02 08:50:04 -0700
commit90153a16f179e04f2f58c9e4e428b669f2282178 (patch)
treebe3c9525cdd66061872e9afc991fc29ef7c4fda3 /include/linux
parent610a61e01f5fd6e1b9e8d8e2f4905d24c7875aa5 (diff)
[PATCH] ext3: fix journal_release_buffer() race
CPU0 CPU1 journal_get_write_access(bh) (Add buffer to t_reserved_list) journal_get_write_access(bh) (It's already on t_reserved_list: nothing to do) (We decide we don't want to journal the buffer after all) journal_release_buffer() (It gets pulled off the transaction) journal_dirty_metadata() (The buffer isn't on the reserved list! The kernel explodes) Simple fix: just leave the buffer on t_reserved_list in journal_release_buffer(). If nobody ends up claiming the buffer then it will get thrown away at start of transaction commit.
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions