2001-03-13 22:31:31

by Alexander Zarochentsev

[permalink] [raw]
Subject: [PATCH] reiserfs patches for 2.4.3-pre4

Hello !

The Reiserfs development team resubmits five revised Reiserfs patches
for the version after Linux 2.4.3-pre4. Their descriptions are:

1. "prealloc.diff" --a fix for possible preallocated blocks leakage
after a system crash

Reiserfs blocks preallocation for big files in the same manner as
ext2. The preallocation code changes both the bitmap and the free
blocks count in the superblock. It is possible after a crash to
have unattached disk blocks which do not belong to any file
(i.e. free space leak). Unlike ext2, reiserfs does not check for
consistency of a filesystem that was not cleanly unmounted. There
is no simple way to recover free space.

For a given transaction, the fix is to, at the transaction end,
discard the preallocations for those inodes which have one.

2. "objectid-sharing.diff" -- object id sharing problem fix

Fix for reiserfs/inode.c:reiserfs_iget () The fix makes sure that
the reiserfs_iget function really got the inode of the object for
which it is looking.

3. "namei.diff" -- improvements of reiserfs_add_entry() function

a. Error handling

There is a place in reiserfs_add_entry() code where fs corruption
(existence of hidden entries--objects temporarily used in
renaming), I/O errors, or several other occurrences, can produce an
error message which has no useful information.

We have had several bug reports about this vs-7032 message in the
older 3.5 version. Each time we were unable to reproduce it. We do
not understand the reason. This error handling fix will make such
bug reports much more informative for us if they should occur in
the newer version.

b. Unnecessary re-searching is avoided

In reiserfs_add_entry(), we don't need to scan a whole bit_string
for non-zero bits to be able to use a smallest generation counter
to avoid re-searching for the dir entry insertion point.

4. "messages.diff"
This adds missed error numbers to reiserfs error
messages

5. "objectid_map.diff"
It adds a better debugging message when the oid map is corrupted,
and (more importantly) fixes a macro in objectid.c to put parens
around the stuff passed in.

--
Thanks,
Alex.


Attachments:
prealloc.diff (5.81 kB)
objectid-sharing.diff (850.00 B)
namei.diff (2.99 kB)
messages.diff (1.43 kB)
objectid_map.diff (816.00 B)
Download all attachments