This directory contains patches that were sent to Linus for inclusion
into next official kernel.
Currently all patches are against 2.4.10-pre2.
Patches in this directory are subject to change without any notice.
A-panic-in-reiserfs_read_super.patch [ACCEPTED in 2.4.10-pre4]
this patch allows reiserfs to cope with an attempt to mount file-system
with corrupted super-block: reiserfs stores both version-dependent magic
and version itself in a super-block. This patch just returns error
rather than panics if they don't match.
B-journal-replay.patch [ACCEPTED in 2.4.10-pre4]
following patch by Chris Mason allows reiserfs to fail gracefully when
io error is hit during journal replay: just return error in stead of
panicking.
C-old-format.patch [ACCEPTED in 2.4.10-pre4]
this patch fixes bugs in the support for reiserfs format <3.5:
file-systems of this format are now mountable and convertible.
D-clear-i_blocks.patch [ACCEPTED in 2.4.10-pre4]
This patch sets inode.i_blocks to zero on deletion of reiserfs
file. This in particular cures hard to believe bug when saving file in
EMACS caused top to loose sight of all processes:
. reiserfs didn't properly cleared i_blocks when removing
symlinks. Actually -7 was inserted into unsigned i_blocks field. This
didn't usually hurt because file is being deleted;
. inode is reused for procfs and neither get_new_inode() nor
proc_read_inode() cleared i_blocks;
. now procfs inode has huge i_blocks field;
. top calls stat on it and libc wrapper returns EOVERFLOW, as i_blocks
doesn't fit into user-level struct.
. top sees nothing.
Alexander Viro and other people proposed that in stead i_blocks
should be cleared in generic VFS code.
E-pathrelse.patch [ACCEPTED in 2.4.10-pre4]
This patch adds missing call to pathrelse() to error path in
reiserfs_do_truncate(). Without pathrelse(), buffers involved
into balancing by some process remain locked and can deadlock
another process.
F-reiserfs_get_block-cleanup.patch [ACCEPTED in 2.4.10-pre4]
This patch fixes several bugs in reiserfs_get_block():
. race condition, when code took block number from "indirect item"
without re-checking that this item is still there after blocking
call. This causes file-system corruption on writing into hole;
. uses stronger condition to check whether to start new transaction;
. increase amount of space reserved into transaction (jbegin_count)
to accommodate for updating of inode on disk (reiserfs_update_sd());
. cast "block" to loff_t;
. move (block < 0) check to the top of the function;
. remove obsolete REISERFS_CHECK around pop_journal_writer();
. add warning number and \n in warning message;
G-blockalloc-for-disk-90%full.patch [ACCEPTED in 2.4.10-pre4]
This patch improves behavior of reiserfs block allocator when free
space is low. By default reiserfs uses so called "border algorithm"
that reserves first 10% of disk for "formatted nodes" that is,
nodes of reiserfs tree. With this patch this distinction is dropped
when free space goes below 10% of total disk space. This has been
found to improve performance.