This directory contains patches sent for inclusion into
2.4.7-preX and still pending.
[ACCEPTED] A-flush-list.patch by Chris Mason
after unpacking a file tail, reiserfs makes sure the new full
block gets flushed to disk before the transaction that unpacks
commits. This way, we make sure old file data isn't lost by the
unpack operation.
But, the current code to do the flushing involves pinning pages,
and some ugly locking rules. This cleanup changes that to make
a fake inode for the journal, and puts the buffers to be flushed
onto that inode's dirty list. It has been in Alan's kernels
since 2.4.5-ac14, no complaints so far.
B-osync.patch by Chris Mason
This patch makes reiserfs O_SYNC and fsync faster by only
committing the last transcation a file/dir was included in,
instead of forcing a commit on the current transaction.
More speedups are still possible, this patch is fairly conservative.
It is based on 2.4.7-pre6 + the direct->indirect target flushing
patch. More testers would be greatly appreciated ;-)
Note, this changes the reiserfs in-core inode. modules users need
to recompile the whole kernel.
[ACCEPTED] C-b_count.patch
2.4.7-pre fixes some races between end_io handlers and freeing of buffers.
The important part is that instead of doing an atomic_dec on b_count,
it introduces a memory barrier to make sure things don't race, and
increments the count before running a synchronous end_io
handler (like the one the journal code uses).
Note, here synchronous doesn't mean 'waits for io completion', it just
means that no special page locking has been done, which is what
you normally get from ll_rw_block.
Anyway, this patch changes submit_logged_buffer to use the new rules,
and it switches over all b_count changes to use get_bh and put_bh.
Of course, we've already got a get_bh call to get the last buffer off
a path, so I renamed that to get_last_bh.
We really should try to get this patch in for 2.4.7, to make sure we
follow the new rules for buffer counts and such. So, if someone could
read/test this, I'd really appreciate it.
[ACCEPTED] D-inode-gen.patch by Chris Mason, Neil Brown and Nikita Danilov
This patch adds better generation number support for NFS. New format
reiserfs files get a generation number, and one of the empty super fields
is used as a per-fs counter. It has been tested against reiserfsck,
and old/new format support. Without this patch, our generation numbers
are limited to the inode number of the parent directory.
[ACCEPTED] E-filldir.patch by Vladimir Saveliev
filldir can trigger a schedule, which might allow a tree balance to
happen, which might move the direct item (and name) we sent as an
argument to filldir. So, copies the name to a local buffer before
sending to filldir, or at least it is supposed to. This patch
fixes a stupid bug there, and does not depend on any of the
others.
Vladimir Saveliev wrote the important parts here...