Messages in this thread | | | Date | Wed, 28 Feb 2001 22:21:30 +0300 | From | Alexander Zarochentcev <> | Subject | [PATCH] reiserfs patch for linux-2.4.2 |
| |
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 version.
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.
Regards, Alex.
[unhandled content-type:application/x-gunzip] | |