X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=RELEASE-NOTES;h=02603fc6e20363c00990c52262018e7f8f984e34;hb=c786fec3f52cd615cc535d35185a5e0ffcb7cc55;hp=360f0ecddade8373ad17b3e9608216dd8ca4115a;hpb=ae85148246952016865e2792b49d6b68649b6063;p=tools%2Fe2fsprogs.git diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 360f0ec..02603fc 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,3 +1,777 @@ +E2fsprogs 1.19 (July 13, 2000) +============================== + +Release the resize2fs program since the timeout before it could +publish it under the GPL has finally expired. + +Add experimental support needed for the ext2 compression patches. +This requires compiling e2fsprogs with the --enable-compression flag +to the configure script. + +Added ext3 journalling support. E2fsck will run the journal (if +necessary) by temporarily mounting the filesystem. /sbin/fsck.ext3 is +installed as a symlink to e2fsck. Fsck has been taught about ext3, +and treats it the same as ext2 in terms of the progress bar logic. +Dumpe2fs will display the superblock journaling information if the +filesystem has a journal. The ext2 library will now permit opening an +ext3 filesystem with the recovery flag set. This is necessary for +on-line dump's to work correctly, but there may be issues with this +working well since ext3 is much less agressive about syncing blocks to +the filesystem, since they're safe on the journal. + +Tune2fs and e2fsck have been changed to allow the mount_count check to +be disabled by setting max_mount_count to -1. (This was already +supported by the kernel.) + +Create a symbolic link for fsck.ext3, since the e2fsprogs utilities +are used for ext3 as well. + +Added internationalization support for e2fsprogs; must be enabled +by passing --enable-nls to configure. + +Always use the provided ext2fs header files to insulate ourselves from +kernel version changes. Which include files are used by e2fsprogs +have also been cleaned up to improve portability. + +Limit the number of times that e2fsck updates the progress bar so that +people who are booting using a 9600 baud console don't get swampped by +too many updates. + +Improved the loop detection algorithm in e2sck's pass #3 so that it is +much, much faster for large filesystems with a large number of +directories. + +The memory footprint for e2fsck is now slightly smaller than before. + +E2fsck now checks if special devices have a non-zero size, and offers +to clear the size field if it finds such an inode. + +E2fsck now checks if special devices have the append-only flag set, +and offers to clear the inode. + +E2fsck now properly handles some "should never fail" cases during a +bitmap copy in pass5. + +E2fsck now properly prints control characters in filenames as ^A .. ^Z. + +Added non-destructive write testing to the badblocks program, courtesy +of David Beattie. The badblocks also now has an option to input the +current set of bad blocks, so that known bad blocks are skipped to +speed up the badblocks test. There is also a persistent rescan +feature that causes badblocks to run some number of passes until the +set of bad blocks is no longer grows. + +Badblocks now checks to see if the device is mounted and refuses to do +the tests involving writing to the device if it is mounted. Also, +badblocks now allows the number of blocks to be checked to be +defaulted to the size of the partition. + +Fixed a bug in fsck which didn't allow non-root users to be able to +check filesystems if there were any LABEL= or UUID= entries in +/etc/fstab. + +The Hurd doesn't support the filetype filesystem feature. The mke2fs +program now makes sure that for the Hurd, the filestype feature is +turned off. E2fsck will check to see if the filetype feature is +turned on for Hurd filesystems, and offer to turn off the feature. + +Mke2fs now has a safety check to make sure the number of blocks do not +exceed 32 bits even on a 64 bit platform. + +Really fixed a bug in fsck to allow "fsck -As" to run interactive +fsck's. (For those people who like to do interactive fsck's in the +/etc/rc scripts!?!) + +Debugfs has a few new features: the rdump command, which will do a +recursive dump of a directory and all of its contents, and the lcd +command which does a local chdir (much like the ftp command of the +same name). In addition, the debugfs program and the open_filesystem +command now takes three new options: -b and -s, which allows the +blocksize and superblock location to be specified, and the -c option +which is used in catastrophic situations where the block group +descriptors are corrupt. If the -c option is specified, debugfs will +skip trying to read in the block and inode bitmaps. + +Debufs's lsdel command was fixed to handle bad blocks in the inode +table. + +A Y2K bug in debugfs's "ls -l" handling was fixed by switching to use +4 digit years. + +General improvements in error messages + + - Mke2fs prints a sane error message if the partition size is zero + (usually because the partition table wasn't reread by the + kernel due to the partition being busy), instead of "invalid + argument passed to ext2 library while initializing superblock". + + - Fsck now prints more self-explanatory message if an invalid UUID= + or LABEL= specification is passed to it. + +UUID library changed to use the LGPL. + +Fixed a bug in the UUID library where very rapid calls to the +time-based UUID generator could cause duplicate UUID's to be returned. +This was not a problem for e2fsprogs, but it could be a problem for +other users of the library. + +Make the UUID library more robust in the face of missing or an +improper /dev/urandom or /dev/random files. + +Added some random portability fixes for Solaris. + +Some minor man page updates. + +Fixed a memory leak in the ss library. + + +Programmer's notes: +------------------- + +We now try to use lseek64 and open64 from the LFS if possible. + +The 3rd parameter in e2p's print_flags is now a flags word, instead of +a boolean option. + +The mark and unmark bitmap functions now return the previous state of +the bit that was being changed, which is useful for some speed +optimizations. + +The following functions have been added to enhance the badblocks list +handling in libext2fs: ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and +ext2fs_badblocks_equal. + +The ext2 header files now have the latest journalling fields to the +superblock. + +The ext2fs_mkdir function in libext2fs now properly backs out of error +conditions robustly. + +Cleaned up makefiles: + - to cleanly compile with the -j flag. + - so distclean removes all generated files. + - so in case of an error while installing header files, the make aborts. + +Fix test_script so that it works correctly when compiling in the +source directory. + +Update libraries to build under a.out shared libraries (again). + +Clean up the build process so it's more friendly in case of missing +directories. + +The ext2fs header file can now be #include'd into C++ programs. + +The e2p.h header file is now installed. + +Added workaround to a gawk 3.0.5 bug in lib/ss/mk_cmds. + + + +E2fsprogs 1.18 (November 10, 1999) +================================== + +Fix a core dumping bug in e2fsck if an imagic inode is present or +(more rarely) if the filesystem is badly corrupted enough that e2fsck +has to restart pass 1 processing. E2fsck now closes the filesystem +before freeing a large number of its data structures, so in the case +of future memory faults, at least the fixed filesystem will be fully +written out. + +If a filesystem doesn't support imagic inodes, and e2fsck discovers an +imagic inode, it will offer to clear the imagic flag. + +E2fsck will now offer to clear the immutable flag on special files +(device/socket/fifos) when running it in non-preen mode. + +E2fsck will now set the filetype when creating /lost+found, and when +connected orphaned inodes to /lost+found. + +Debugfs's ncheck and icheck commands now handles the case where there +are bad blocks in the inode table without bombing out. + +The badblocks list processing code has been made more efficiently for +appending a large number of (ordered) badblocks to the badblocks list. + +Some minor man page updates. + +Fsck now allows interactive e2fsck's when using fsck -As (not a common +mode, but some people like to do this in boot scripts for silly reasons). + +Programmer's notes: +------------------- + +The internal e2fsck problem code for PR_2_SPLIT_DOT was fixed to meet +with the problem code convention. + +The badblocks list regression test program has been updated to work +with previously made API name changes. + +The ext2fs_free() command now uses the new badblocks API to avoid +using the compatibility layer. + +Added new regression test cases; the run_e2fsck test script now +supports the ability for a test case to run a prepratory command +before running e2fsck. + +E2fsprogs 1.17 (October 26, 1999) +================================= + +Fixed nasty typo in fsck which caused parallelized fsck's to go into an +infinite loop. + +Fixed a bug in fsck where it used strncmp to compare a binary UUID, +thus potentially causing problems if a binary UUID contained a NULL +character. + +E2fsck now uses stricter checks for directory entries in pass 2: +zero-length filenames are not allowed; neither are 8 byte long +directory entries. + +The debugfs "dirty" command now clears the filesystem valid bit. +(Previously this just set the dirty-as-in-needs-writing-out-to-disk +bit in the in-core superblock image. The new functionality is more +what the user expects, and is more useful.) + +Added a debugging hook to test parallel fsck; if the environment +variable FSCK_FORCE_ALL_PARALLEL, then filesystems on the same drive +will be checked in parallel when they normally would not be. + +Programmer's notes: +------------------- + +Fixed some #ifdef's for compilation under the Hurd OS. + +Fixed minor W2K compatibility problems. + +Fixed some miscellaneous GCC warnings. + + +E2fsprogs 1.16 (October 22, 1999) +================================= + +Fixed a race condition bug in fsck; when printing a progress bar, if +checking multiple filesystems in parallel, it was possible for fsck to +send e2fsck a SIGUSR1 signal before e2fsck had installed its signal +handler, which would cause it to terminate with a signal 10. + +E2fsck now properly handles filesystems that have the +INCOMPAT_FILETYPE feature turned on. It can be used to convert a +filesystem into using or not using FILETYPE feature. + +E2fsck now properly handles filesystems that have the IMAGIC feature +turned on (this is used on Linux AFS servers). + +The mke2fs program now creates filesystems that have the filetype and +sparse_superblock features enabled by default, unless it is run on a +pre-2.2 kernel. These features are not supported by a pre-2.2 kernel, +so there is now a new flag -O which allows the user to specify with +which features she would like to create the filesystem; "mke2fs -O +none" will create a filesystsem compatible with 2.0 kernels. + +The tune2fs program now has a -O option which allows the user to set +and reset "safe" filesystem features. Currently, the only ones which +allows to be modified are the filetype and sparse_superblock features. +Note setting or clearing either feature will require running e2fsck on +the filesystem afterwards. (n.b. Clearing the sparse_superblock feature +requires that there is enough free space on the filesystem for the +extra superblocks which will be created by e2fsck.) + +Debugfs can now set and print filesystem features in the superblock +using the "features" command. Dumpe2fs will print out the complete +set of features when listing the superblock. + +Dumpe2fs has new options -f (force) and -h (header-only). + +Fixed a bug in e2fsck which could cause the PROGRAMMING ERROR/bonehead +message to come up. This could happen when decrementing or +incrementing a link count could result in an overflow. + +Fixed a bug in e2fsck where the block count on the lost+found +directory would not be properly incremented when the directory was +expanded to the point where an indirect block needed to be allocated. + +E2fsck now makes some additional sanity checks on the superblock to +avoid crashing or giving a memory allocation error if some of the +values in the superblock are unresonable (but the superblock otherwise +looks valid). + +Fixed a bug in e2fsck where a very badly corrupted filesystem might +require two passes to completely fix the filesystem. This happened if +an inode claimed blocks that was part of the filesystem metadata +(typically, when garbage was written into an inode table or indirect +block, since this kind of filesystem corruption normally doesn't +happen otherwise). + +On the Alpha, glibc declares st_flags although it isn't actually used; +the configure script was improved to detect this case so that +e2fsprogs can avoid using the non-functional stat field. + +The manual pages were updated to use a more consistent formatting +style consistent with standard Unix man pages. Mke2fs's man page +added documentation for a few previously undocumented options. + +Fixed minor display bugs in tune2fs and mke2fs. + +Programmer's notes: +------------------- + +Improved portability of e2fsprogs to non-Unix systems (in particular, NT). + +Added features to parse and print feature strings into the e2p library. +(e2p_feature2string, e2p_string2feature, e2p_edit_feature). + +ext2fs_mkdir() and ext2fs_new_dir_block() now creates directories +whose directory entries contain proper filetype information if the +filesystem supports it. + +ext2fs_link() now uses the low 3 bits of its flags parameter to pass +the directory entry filetype information. This is used to set the +directory entry filetype information if the filesystem supports it. + +Fixed a bug in ext2fs_expand_dir() where the block count in a +directory's inode would not be properly incremented when the directory +was expanded to the point where an indirect block needed to be +allocated. + + +E2fsprogs 1.15 (July 18, 1999) +============================== + +Add configuration checks so that e2fsprogs will compile cleanly on +Linux 2.3 kernels that have renamed i_version to i_generation. + +E2fsck now prints a progress/completion bar (and not just a simple +spinner) if the -C0 option is requested or if it receives a SIGUSR1 +signal. Fsck will automatically manage the (potentially muliple) +e2fsck processes to print completion bars if it is given a -C option, +with the right thing happening if multiple filesystems are being +checked in parallel. + +Mke2fs now has better automatic hueristics to determine the filesystem +parameters to be used for a particular filesystem. Added a new option +-T which allows the user to specify how the filesystem is to be used, +which helps mke2fs do a better job selecting the filesystem parameters. + +Mke2fs now creates revision 1 filesystems by default, and with the +sparse superblock feature enabled. The sparse superblock feature is +not understood by Linux 2.0 kernels, so they will only allow read-only +mounts of filesystems with this sparse superblocks. + +Fix bug where if /dev/null couldn't be opened (should never happen), +e2fsck would hang in a tight loop. + +Make e2fsck handle the case where /lost+found isn't a directory. + +E2fsck now uses mallinfo if it exists to get accurate statistics about +its memory usage. + +Fix bug in e2fsck where it wouldn't check to see if a disconnected +inode had any problems before connecting it to /lost+found. + +Add check to e2fsck so it makes sure that total number of inodes in +the filesystem is a sane number. + +Fix fencepost error when clearing an the end of the block bitmap which +caused the last block in the bitmap not to get cleared. + +Cleaned up a number of messages in e2fsck: + * The message "Group's #'s copy of the group descriptor..." + was fixed so that the correct number would be displayed. + * Added missing space in the "disk write-protected" error messsage + * Cleaned up the error message printed when a non-interactive + e2fsck needs to abort a check because the filesystem + appears to be mounted. + +Added a new command-line utility, uuidgen, which will create and print +a UUID. + +Make debugfs's icheck command more robust by checking to make sure an +inode has valid blocks before interarting over the inode's blocks. + +UUID generation now uses a random-based scheme whenever possible to +prevent potential privacy problems. + +Man pages for all of the UUID functions in the lirbary were added. + +Fixed bug in fsck so it won't coredump if a filesystem not in +/etc/fstab is given to it. + +Fsck now understands the UUID=xxxx and LABEL=yyyy forms in /etc/fstab +that most of the other mount utilities understands. + +Mke2fs will make a filesystem even if it appears mounted if the force +option is given. + +Dumpe2fs has new command-line options which allow a filesystem expert +to specify the superblock and blocksize when opening a filesystem. +This is mainly useful when examining the remains of a toasted +filesystem. + +The badblocks program has been updated to display correctly on disks +with large block numbers. + +The badblocks program no longer gives spurious errors when errors +occur on non-block boundaries, which is common if the blocksize is +larger than 1k. + +Mke2fs will sync the disk device every MKE2FS_SYNC block groups if the +MKE2FS_SYNC environment variable is set. This is to work around a VM +bug in the 2.0 kernel. I've heard a report that a RAID user was able +to trigger it even using a 2.2 kernel, but hopefully it will not be +needed for most Linux 2.2 users. + +Fixed miscellaneous documentation and man pages. + +Programmer's notes: +------------------- + +Cleaned up functions such as pass1_get_blocks, pass1_read_inode which +in e2fsck's pass1.c really should have been static. + +The return value of the uuid_compare() function was changed to make it +match with the convetions used by strcmp, memcmp, and Paul Leach's +UUID sample document. + +The "make depend" process has now been made more automated; it now +automatically word-wraps the dependencies, and only replaces source +Makefile.in if there has been a change in the dependencies. Also, a +top-level "make depend" now recurses through all the subdirectories +automatically. + +The Makefile in .../util has been changed so that subst is built using +the native C compiler during a cross-compilation, since the subst +program is only used during the build process. Also add an explicit +rule to build util/subst by cd'ing to the correct directory and +running Makefile. + +The man directories are defined in terms mandir, so that the configure +script can override the location of the manual pages. + +The config files have been updated to recognize new machine types for +both the i386 and alpha families. + +Fsck has been modified so that it will accurately create an +fsck_instance even when the noexecute flag is set. This allows for +accurate debugging of the fsck pass structure. Also, when the verbose +flag is given twice, fsck will print debugging information about when +fsck is waiting for jobs to finish. + + +E2fsprogs 1.14 (January 9, 1999) +================================ + +Fix the fstab parsing code so that it can handle blank lines and +comment characters. Also, missing pass numbers need to be treated as +zero. + +Fixed a bug in e2fsck where under some circumstances (when e2fsck +needs to restart processing after fixing an egregious inconsistency) +it would try to access already freed memory. + +E2fsck now prints non-printable characters in directory entries and +pathnames using '^' and 'M-' notation. + +Fixed chattr so that it will ignore symbolic links when doing +recursive descent traversals. For both chattr and lsattr, no longer +print the version string unless the -V option is given. + +Allow the system administrator to directly specify the number of +inodes desired in the filesystem, for some special cases where this is +necessary. + +Fix portability problems so that e2fsprogs can be compiled under Linux +1.2 systems and Solaris systems. + +Update the config.guess file with a more recent version that will +identify newer Linux platforms. + +Programmer's notes +------------------ + +Ext2fs_read_inode and ext2fs_write_inode will now return an error if +an inode number of zero is passed to them. + +E2fsprogs 1.13 (December 15, 1998) +================================== + +Fixed a bug in debugfs where an error messages weren't getting printed +when the ext2 library routines to read inodes returned errors in the +stat, cmri and rm commands. + +Fixed a bug in mke2fs so that if a ridiculous inode ratio parameter is +provided, it won't create an inode table smaller than the minimum +number of inodes required for a proper ext2 filesystem. + +Fsck now parses the /etc/fstab file directly (instead of using +getmntent()), so that it can distinguish between a missing pass number +field and pass number field of zero. This caused problems for +diskless workstations where all of the filesystems in /etc/fstab have +an explicit pass number of zero, and fsck could not distinguish this +from a /etc/fstab file with missing pass numbers. + +E2fsck will create a /lost+found directory if there isn't one in the +filesystem, since it's safer to create the lost+found directory before +it's needed. + +Fixed e2fsck so that it would detect bogus immutable inodes which +happen to be sockets and FIFO files, and offer to clear them. + +If a filesystem has multiple reasons why it needs to be checked, and +one of the reasons is that it is uncleanly mounted, e2fsck will print +that as the reason why the filesystem is being checked. + +Cleaned up the output routines of mke2fs so that it doesn't overflow +an 80 column display when formating really big filesystems. + +Added a sanity check to e2fsck to make sure that file descriptors 0, +1, 2 are open before opening the hard disk. This avoids a problem +where a broken program might exec e2fsck with those file descriptors +closed, which would cause disastrous results if the kernel returns a +file descriptor for the block device which is also used by FILE * +stdout. + +Fixed up the e2fsck progress reporting functions so that the values +reliably reach 100% at the completion of all of the e2fsck passes. + +Fixed minor documentation bugs in man pages and usage messages. + +Programmer's notes: +------------------- + +Fixed a number of lint warnings in the ext2fs library and potential +portability problems from other OS's header files that might define +CPP macros for names like "max" and "min". + +ext2fs_badblocks_list_add() has been made more efficient when it needs +to grow the bad blocks list. + +Fixed a bug in e2fsck which caused it to dereference a freed pointer +just before exiting. + +Fixed the substition process for generating the mk_cmds and compile_et +scripts so that they will work outside of the build tree. + +Add sanity check to e2fsck so that if an internal routine +(ext2fs_get_dir_info) returns NULL, avoid dereferencing the pointer +and causing a core dump. This should never happen, but... + +E2fsprogs 1.12 (July 9, 1998) +================================== + +E2fsprogs now works with glibc (at least with the version shipped wtih +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 subsitutes 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 wheren't explicit enough. + +Added special case byte-swapping code if compiling on the PowerPC, to +accomodate 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 fucntion 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 generla, 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. + + +E2fsprosg 1.11 (June 17, 1997) +============================== + +Fixed e2fsck to detect (previously ignored) conflicts between the +superblock or block group descriptors and block bitmaps, inode +bitmaps, and inode tables. + +Fixed bug in e2fsck so that when the message printed out when a block +or inode bitmap conflicts with other data, it has the correct group +number. + +Fixed bug in e2fsck and mke2fs where the blocksize wasn't being passed +to badblocks. This meant that not all of the filesystem was being +tested for bad blocks! + +Fixed an array boundary overrun case which cropped up in +ext2fs_badblocks_list_test when a user tried running "mke2fs -c +-b 4096". + +Adjusted the number of columns printed by mke2fs when displaying the +superblock backups to avoid running over 80 columns when making a +really big filesystem. + +Fixed up the man pages for e2fsck, debugfs, badblocks, chattr, +dumpe2fs, fsck, mke2fs, and tune2fs (typos and other minor grammar +fixes), thanks to some suggestions from Bill Hawes (whawes@star.net). + +Programmer's notes: +------------------- + +Fixed install rule in lib/ss so that ss_err.h is actually getting +installed. + +Fixed bug in ext2fs_copy_bitmap; the destination bitmap wasn't getting +bassed back to the caller. + +Fixed bug in ext2fs_inode_scan_goto_blockgroup; it had not been +setting the current inode number (which meant this function wasn't +working at all). + +Fixed bug in ext2fs_resize_generic_bitmap; it had not be zeroing all +blocks in the bitmap when increasing the size of the bitmap. + +Changed the initial number of blocks allocated by ext2fs_init_dblist() +to be more realistic. + +Added a new function ext2fs_allocate_group_table, which sets up the +group descriptor information (and allocates inode and block bitmaps, +and inode tables for a particular group). The function was created by +factoring out code form ext2fs_allocate_tables(). + +Added a new function ext2fs_move_blocks which takes a bitmap of the +blocks to be moved, and moves them to another location on the +boardboard. + +Make the unix_io channel's io_channel_flush implementation calls sync() +to to flush the kernel buffers to disk. + +Added a new function ext2fs_dblist_count returns the number of +directory blocks in dblist. + + E2fsprogs 1.10 (April 24, 1997) ===============================