[PATCH] reiserfs patch for linux-2.4.2

From: Alexander Zarochentcev (zam@namesys.com)
Date: Wed Feb 28 2001 - 14:21:30 EST

Hello !

This reiserfs patch for linux-2.4.2 was prepared by all members of the reiserfs dev team.
It contains the following fixes/cleanups/improvements:

1. Fix for possible preallocated blocks leakage after a system crash

Reiserfs does block preallocation for big files like ext2 does. Preallocation
code changes both the bitmap and the free blocks count in the superblock. It
is possible to have unattached disk blocks which do not belong to any file
(i.e. free space leak) after a crash. 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. Object id sharing problem.

Fix for reiserfs/inode.c:reiserfs_iget () It now makes sure that it
really got inode of an object it is looking for.

3. Improvement of error handling in reiserfs_add_entry()

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 occurences, 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

4. 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
researching for the dir entry insertion point.

5. bad block support

New ioctls added, enabling direct manipulation of block allocation bitmap by
the user space programs: ioctl to mark block as used, ioctl to mark block as
free and ioctl to update counter (stored in the super block) of blocks marked
through first two ioctls. This can be used as crude form of bad block support
(e.g., such ioctls can be used just after creation of file system on the device
with known bad blocks). User level interface to ioctls available.

6. Using integer constants from limits.h instead of self made ones

7. other minor fixes.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

This archive was generated by hypermail 2b29 : Wed Feb 28 2001 - 21:00:17 EST