| E2fsprogs 1.12 (July 9, 1998) |
| ================================== |
| |
| E2fsprogs now works with glibc (at least with the version shipped with |
| RedHat 5.0). The ext2fs_llseek() function should now work even with |
| i386 ELF shared libraries and if llseek() is not present. We also |
| explicitly do a configure test to see if (a) llseek is in libc, and |
| (b) if llseek is declared in the system header files. (See standard |
| complaints about libc developers don't understand the concept of |
| compatibility with previous versions of libc.) |
| |
| The ext2fs library now writes out the block group number in each of |
| the superblock copies. This makes it easier to automatically |
| determine the starting block group of the filesystem when the block |
| group information is trashed. |
| |
| Added support for the EXT2_FEATURE_INCOMPAT_FILETYPE feature, |
| which means that e2fsprogs will ignore the high 8 bits of the |
| directory entry's name_len field, so that it can be used for other |
| purposes. |
| |
| Added support for the EXT2_FEATURE_RO_COMPAT_LARGE_FILE feature. |
| E2fsprogs will now support filesystems with 64-bit sized files. |
| |
| Added support for the EXT2_FEATURE_COMPAT_DIR_PREALLOC feature. |
| |
| Added new program "e2label", contributed by Andries Brouwer. E2label |
| provides an easy-to-use interface to modify the filesystem label. |
| |
| Fixed bug so that lsattr -v works instead of producing a core dump. |
| |
| Fixed a minor bug in mke2fs so that all groups with bad superblock |
| backup blocks are printed (not just the first one). |
| |
| Mke2fs will check the size of the device, and if the user specifies a |
| filesystem size larger than the apparent size of the device it will |
| print a warning message and ask if the user wants to proceed. |
| |
| E2fsck has a new option -C, which sends completion information to the |
| specified file descriptor. For the most part, this is intended for |
| programs to use, although -C 0 will print a spinning character to the |
| stdout device, which may be useful for users who want to see something |
| happening while e2fsck goes about its business. |
| |
| Fixed a bug in e2fsck which could cause a core dump when it needs to |
| expand the /lost+found directory, and sometimes the bitmaps haven't |
| been merged in. Also fixed a related bug where ext2fs_write_dir_block |
| was used to write out a non-directory block. (Which would be bad on a |
| non-Intel platform with byte swapping going on.) |
| |
| Fixed bug in e2fsck where it would print a "programming error" message |
| instead of correctly identifying where a bad block was in used when |
| the bad block was in a non-primary superblock or block group |
| descriptor. Also fixed a related bug when sparse superblocks are in |
| use and there is a bad block where a superblock or block group |
| descriptor would have been in a group that doesn't include a |
| superblock. |
| |
| Fixed a bug in e2fsck (really in libext2fs's dblist function) where if |
| the block group descriptor table is corrupt, it was possible to try to |
| allocate a huge array, fail, and then abort e2fsck. |
| ext2fs_get_num_dirs() now sanity checks the block group descriptor, |
| and substitutes reasonable values if the descriptors are obviously bogus. |
| |
| If e2fsck finds a device file which has the immutable flag set and the |
| i_blocks beyond the normal device number are non-zero, e2fsck will |
| offer to remove it, since it's probably caused by garbage in the inode |
| table. |
| |
| When opening a filesystem, e2fsck specially checks for the EROFS error |
| code, and prints a specific error message to the user which is more |
| user friendly. |
| |
| If the filesystem revision is too high, change the e2fsck to print |
| that this is either because e2fsck is out of date, or because the |
| superblock is corrupt. |
| |
| E2fsck now checks for directories that have duplicate '.' and '..' |
| entries, and fixes this corruption. |
| |
| E2fsck no longer forces a sync of the filesystem (with attendant sleep |
| calls) at all times. The ext2fs_flush() function now performs a sync |
| only if it needed to write data blocks to disk. |
| |
| Fixed a minor bug in e2fsck's pass1b's file cloning function, where |
| certain errors would not be properly reported. |
| |
| Updated and expanded a few points in the man pages which users |
| complained weren't explicit enough. |
| |
| Added special case byte-swapping code if compiling on the PowerPC, to |
| accommodate the strange big-endian variant of the ext2 filesystem that |
| was previously used on the PowerPC port. |
| |
| |
| Programmer's notes: |
| ------------------- |
| |
| Removed C++ keywords from the ext2fs libraries so that it could be |
| compiled with C++. |
| |
| E2fsck's internal organization has now been massively reorganized so |
| that pass*.c don't have any printf statements. Instead, all problems |
| are reported through the fix_problem() abstraction interface. E2fsck |
| has also been revamped so that it can be called as a library from a |
| application. |
| |
| Added new fileio primitives in libext2fs for reading and writing |
| files on an unmounted ext2 filesystem. This interface is now used by |
| debugfs. |
| |
| Added a new libext2fs function for mapping logical block numbers of |
| a file to a physical block number. |
| |
| Added a new libext2fs function, ext2fs_alloc_block(), which allocates |
| a block, zeros it, and updates the filesystem accounting records |
| appropriately. |
| |
| Added a new libext2fs function, ext2fs_set_bitmap_padding(), which |
| sets the padding of the bitmap to be all one's. Used by e2fsck pass 5. |
| |
| The libext2fs functions now use a set of memory allocation wrapper |
| functions: ext2fs_get_mem, ext2fs_free_mem, and ext2fs_resize_mem, |
| instead of malloc, free, and resize. This makes it easier for us to |
| be ported to strange environments where malloc, et. al. aren't |
| necessarily available. |
| |
| Change the libext2fs function to return ext2-specific error codes |
| (EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND, for example) instead of using |
| and depending on the existence of system error codes (such as EEXIST |
| and ENOENT). |
| |
| Renamed io.h to ext2_io.h to avoid collision with other OS's header |
| files. |
| |
| Add protection against ext2_io.h and ext2fs.h being included multiple |
| times. |
| |
| The types used for memory lengths, etc. have been made more portable. |
| In general, the code has been made 16-bit safe. Added Mark |
| Habersack's contributed DOS disk i/o routines. |
| |
| Miscellaneous portability fixes, including not depending on char's |
| being signed. |
| |
| The io_channel structure has a new element, app_data, which is |
| initialized by the ext2fs routines to contain a copy of the filesystem |
| handle. |
| |
| ext2fs_check_directory()'s callback function may now return the error |
| EXT2_ET_CALLBACK_NOTHANDLED if it wishes ext2fs_check_directory() to |
| really do the checking, despite the presence of the callback function. |
| |