-*- outline -*-
This directory contains patches that are queued for sending to Linus
for inclusion into next official kernel.
They are not yet thoroughly tested (december, 11, 2001) and your testing and
feedback are most welcome.
All patches are subject to in-place modification without further notice.
They should be applied in alphabetical order against vanilla official
kernel.
B-check_nlink_in_reiserfs_read_inode2.patch
It is possible that knfsd is trying to access inode of a file
that is being removed from the disk by some other thread. As we
update sd on unlink all that is required is to check for nlink
here. This bug was first found by Sizif when debugging
SquidNG/Butterfly, forgotten, and found again after Philippe
Gramoulle <
[email protected]> reproduced it.
More logical fix would require changes in fs/inode.c:iput() to
remove inode from hash-table _after_ fs cleaned disk stuff up and
in iget() to return NULL if I_FREEING inode is found in
hash-table.
C-bitmap-range-checking.patch
Check that block number are going to free in a bitmap makes sense.
This avoids oops after trying to access bitmap for wild block number.
D-prepare_for_delete_or_cut-cleanup.patch
Patch by Chris Mason <
[email protected]>.
prepare_for_delete_or_cut() tries to find the unformatted node in
the buffer cache to make sure it isn't in use. Since unformatted
nodes are never in the buffer cache, this check is useless. The
page locking done by mm/vmscan.c:vmtruncate protects us from
truncating away pages that are in use, so it is safe to just remove
the bogus check from our code.
Since the get_hash_table was also the reason for the repeat loop,
this patch removes it as well. Light testing here, I had put an
older version through more tests (before the RFALSE/big endian
stuff), I'll run them again.
This should make file deletes faster, at the very least it cuts down
on CPU overhead for deletes/truncates.
E-cleanup.patch
There is always place for Yet Another Cleanup of Reiserfs Code.
F-unlink-truncate-opened.patch
Fixes long-standing problem in reiserfs, when disk space gets leaked
if crash occurred when some process hold a reference to unlinked file.
It's possible to unlink file that is still opened by some
process. In this case, body of file is actually removed at the time
of last close. If crash occurs in between last unlink (when
directory entry for this file is removed) and last close, body
doesn't get unlinked and "disk-space-leak" occurs. To prevent this,
unlink-truncate-opened patch stores in a tree special record at the
time of last unlink. This record is some form of logical logging and
will be either removed during following close, or replayed during
next mount after a crash.
G-chown-32-bit-fix.patch
Reiserfs 3.5 disk format can only store 16 bit uid/gid inside
stat-data. This patch adds error checking so that EINVAL is returned
on attempt to change uid/gid of an old file to value that doesn't
fit into 16 bit, in stead of silently truncating it into 16 bit.
This, of course, requires that CONFIG_UID16 is *not* being set in
your kernel .config file.
H-journal-preallocated.patch
Patch by Chris Mason for bug found and debugged by Anne Milicia
(
[email protected]): don't run preallocated blocks
through journal_mark_freed() and don't corrupt i_prealloc_block during
__discard_prealloc().
I-double-replay.patch
Patch by Chris Mason to avoid duplicate replay of last flushed
transaction.
J-infinite-replay.patch
Patch to break infinite loop in journal_read() in a case when
journal log area is completely filled with transactions.
K-big-endian-const.patch
Suppress compilation warnings on big endian platform.
L-kreiserfsd-sleep-timeout.patch
Correct a typo in fs/reiserfs/journal.c:
interruptible_sleep_on_timeout() takes timeout in jiffies, rather
than seconds.
M-remount-options.patch
Handle more options on remount: notail, no_border,
no_unhashed_relocation, hashed_relocation, test4
N-more-procfs.patch
Gather information in /proc/fs/reiserfs about restarts of tree
updates: this is small but useful addition to procinfo patch.
O-inode-attrs.patch
Store some attributes on reiserfs inode persistently on disk. User
level API to set and get inode attributes is the same as in ext2, so
chattr(1) and lsattr(1) work where possible. All ext2 attributes and
"notail" attribute are saved and inherited across directory
hierarchy, but only following are currently implemented: immutable,
noatime, and notail. One cannot set and get "notail" attribute with
current version of e2fsprogs, but this will be supported in a
future.
Attributes are only supported on 3.6 disk format file system.
Inode attributes are stored in previously unused field of
stat-data. It may happen that this field actually contains garbage,
so after applying this patch it's recommended to run
chattr -R = /reiserfs-mount-point
for each reiserfs file system. To activate attributes, pass "attrs"
mount option to reiserfs. This option will have no effect (save for
warning) until special flag is set in reiserfs super-block. This is because
said garbage on root file-system can prevent system from booting
(for example spurious immutable bit on /dev/console). This flag
will be set by future releases of reiserfsck once it clears all
attributes fields.
P-reiser_stats_fix.patch
Cleans up old_format_only macros to a correct state. Introduces on-disk
properties variable in reiserfs_superblock (currently for storing
on-disk format). REISERFS_CONVERT is now only used to see if conv
mount option was specified.
Q-find-hash.patch
Fixes mount/remount options handling
^ Local variables:
^ mode-name: "patch set"
^ indent-tabs-mode: nil
^ tab-width: 4
^ outline-regexp: "[A-Z]-.*"
^ eval: (progn (hide-body) (flyspell-mode))
^ End: