blob: 4cfa621fedb5577e54b61f3c8d8859a35955db40 [file] [log] [blame]
Theodore Ts'o21d53851998-02-21 03:14:50 +00001E2fsprogs 1.12 (February 20, 1998)
2==================================
3
4E2fsprogs now works with glibc (at least with the version shipped wtih
5RedHat 5.0). The ext2fs_llseek() function should now work even with
6i386 ELF shared libraries and if llseek() is not present. We also
7explicitly do a configure test to see if (a) llseek is in libc, and
8(b) if llseek is declared in the system header files. (See standard
9complaints about libc developers don't understand the concept of
10compatibility with previous versions of libc.)
11
Theodore Ts'o101c84f1998-03-24 16:27:11 +000012Added support for the EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE feature,
13which means that e2fsprogs will ignore the high 8 bits of the
14directory entry's name_len field, so that it can be used for other
15purposes.
16
17Added support for the EXT2_FEATURE_RO_COMPAT_LARGE_FILE feature.
18E2fsprogs will now support filesystems with 64-bit sized files.
19
20Added support for the EXT2_FEATURE_COMPAT_DIR_PREALLOC feature.
21
Theodore Ts'o21d53851998-02-21 03:14:50 +000022Added new program "e2label", contributed by Andries Brouwer. E2label
23provides an easy-to-use interface to modify the filesystem label.
24
25Fixed a minor bug in mke2fs so that all groups with bad superblock
26backup blocks are printed (not just the first one).
27
28Fixed a bug in e2fsck which could cause a core dump when it needs to
29expand the /lost+found directory, and sometimes the bitmaps haven't
30been merged in. Also fixed a related bug where ext2fs_write_dir_block
31was used to write out a non-directory block. (Which would be bad on a
32non-Intel platform with byte swapping going on.)
33
34Fixed bug in e2fsck where it would print a "programming error" message
35instead of correctly identifying where a bad block was in used when
36the bad block was in a non-primary superblock or block group
37descriptor. Also fixed a related bug when sparse superblocks are in
38use and there is a bad block where a superblock or block group
39descriptor would have been in a group that doesn't include a
40superblock.
41
42Fixed a bug in e2fsck (really in libext2fs's dblist function) where if
43the block group descriptor table is corrupt, it was possible to try to
44allocate a huge array, fail, and then abort e2fsck.
45ext2fs_get_num_dirs() now sanity checks the block group descriptor,
46and subsitutes reasonable values if the descriptors are obviously bogus.
47
48If e2fsck finds a device file which has the immutable flag set and the
49i_blocks beyond the normal device number are non-zero, e2fsck will
50offer to remove it, since it's probably caused by garbage in the inode
51table.
52
53When opening a filesystem, e2fsck specially checks for the EROFS error
54code, and prints a specific error message to the user which is more
55user friendly.
56
57If the filesystem revision is too high, change the e2fsck to print
58that this is either because e2fsck is out of date, or because the
59superblock is corrupt.
60
61E2fsck now checks for directories that have duplicate '.' and '..'
62entries, and fixes this corruption.
63
64E2fsck no longer forces a sync of the filesystem (with attendant sleep
65calls) at all times. The ext2fs_flush() function now performs a sync
66only if it needed to write data blocks to disk.
67
68Fixed a minor bug in e2fsck's pass1b's file cloning function, where
69certain errors would not be properly reported.
70
71Updated and expanded a few points in the man pages which users
72complained wheren't explicit enough.
73
74Added special case byte-swapping code if compiling on the PowerPC, to
75accomodate the strange big-endian variant of the ext2 filesystem that
76was previously used on the PowerPC port.
77
78
79Programmer's notes:
80-------------------
81
82Removed C++ keywords from the ext2fs libraries so that it could be
83compiled with C++.
84
85E2fsck's internal organization has now been massively reorganized so
86that pass*.c don't have any printf statements. Instead, all problems
87are reported through the fix_problem() abstraction interface. E2fsck
88has also been revamped so that it can be called as a library from a
89application.
90
91Added new fileio primitives in libext2fs for reading and writing
92files on an unmounted ext2 filesystem. This interface is now used by
93debugfs.
94
95Added a new libext2fs function for mapping logical block numbers of
96a file to a physical block number.
97
98Added a new libext2fs function, ext2fs_alloc_block(), which allocates
99a block, zeros it, and updates the filesystem accounting records
100appropriately.
101
102Added a new libext2fs function, ext2fs_set_bitmap_padding(), which
103sets the padding of the bitmap to be all one's. Used by e2fsck pass 5.
104
105The libext2fs functions now use a set of memory allocation wrapper
106functions: ext2fs_get_mem, ext2fs_free_mem, and ext2fs_resize_mem,
107instead of malloc, free, and resize. This makes it easier for us to
108be ported to strange environments where malloc, et. al. aren't
109necessarily available.
110
111Change the libext2fs fucntion to return ext2-specific error codes
112(EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND, for example) instead of using
113and depending on the existence of system error codes (such as EEXIST
114and ENOENT).
115
116Renamed io.h to ext2_io.h to avoid collision with other OS's header
117files.
118
119Add protection against ext2_io.h and ext2fs.h being included multiple
120times.
121
122The types used for memory lengths, etc. have been made more portable.
123In generla, the code has been made 16-bit safe. Added Mark
124Habersack's contributed DOS disk i/o routines.
125
126Miscellaneous portability fixes, including not depending on char's
127being signed.
128
129The io_channel structure has a new element, app_data, which is
130initialized by the ext2fs routines to contain a copy of the filesystem
131handle.
132
133ext2fs_check_directory()'s callback function may now return the error
134EXT2_ET_CALLBACK_NOTHANDLED if it wishes ext2fs_check_directory() to
135really do the checking, despite the presence of the callback function.
136
137
Theodore Ts'obc210071997-06-17 05:41:36 +0000138E2fsprosg 1.11 (June 17, 1997)
139==============================
140
141Fixed e2fsck to detect (previously ignored) conflicts between the
142superblock or block group descriptors and block bitmaps, inode
143bitmaps, and inode tables.
144
145Fixed bug in e2fsck so that when the message printed out when a block
146or inode bitmap conflicts with other data, it has the correct group
147number.
148
149Fixed bug in e2fsck and mke2fs where the blocksize wasn't being passed
150to badblocks. This meant that not all of the filesystem was being
151tested for bad blocks!
152
153Fixed an array boundary overrun case which cropped up in
154ext2fs_badblocks_list_test when a user tried running "mke2fs -c
155-b 4096".
156
157Adjusted the number of columns printed by mke2fs when displaying the
158superblock backups to avoid running over 80 columns when making a
Theodore Ts'o21d53851998-02-21 03:14:50 +0000159really big filesystem.
Theodore Ts'obc210071997-06-17 05:41:36 +0000160
161Fixed up the man pages for e2fsck, debugfs, badblocks, chattr,
162dumpe2fs, fsck, mke2fs, and tune2fs (typos and other minor grammar
163fixes), thanks to some suggestions from Bill Hawes (whawes@star.net).
164
165Programmer's notes:
166-------------------
167
168Fixed install rule in lib/ss so that ss_err.h is actually getting
169installed.
170
171Fixed bug in ext2fs_copy_bitmap; the destination bitmap wasn't getting
172bassed back to the caller.
173
174Fixed bug in ext2fs_inode_scan_goto_blockgroup; it had not been
175setting the current inode number (which meant this function wasn't
176working at all).
177
178Fixed bug in ext2fs_resize_generic_bitmap; it had not be zeroing all
179blocks in the bitmap when increasing the size of the bitmap.
180
181Changed the initial number of blocks allocated by ext2fs_init_dblist()
182to be more realistic.
183
184Added a new function ext2fs_allocate_group_table, which sets up the
185group descriptor information (and allocates inode and block bitmaps,
186and inode tables for a particular group). The function was created by
187factoring out code form ext2fs_allocate_tables().
188
189Added a new function ext2fs_move_blocks which takes a bitmap of the
190blocks to be moved, and moves them to another location on the
191boardboard.
192
193Make the unix_io channel's io_channel_flush implementation calls sync()
194to to flush the kernel buffers to disk.
195
196Added a new function ext2fs_dblist_count returns the number of
197directory blocks in dblist.
198
199
Theodore Ts'oae851481997-04-29 18:13:24 +0000200E2fsprogs 1.10 (April 24, 1997)
201===============================
202
203Mke2fs once again defaults to creating revision #0 filesystems, since
204people were complaining about breaking compatibility with 1.2 kernels.
205Warning messages were added to the mke2fs and tune2fs man pages that
206the sparse superblock option isn't supported by most kernels yet (1.2
207and 2.0 both don't support parse superblocks.)
208
209Added new flag to mke2fs, -R <raid options>, which allows the user to
210tell mke2fs about the RAID configuration of the filesystem. Currently
211the only supported raid option is "stride" which specifies the width
212of the RAID stripe.
213
214Fixed bug in e2fsck where pass1b would bomb out if there were any
215blocks marked bad in the inode table.
216
217Fixed rare bug in mke2fs where if the user had a very unlucky number
218of blocks in a filesystem (probability less than .002) the resulting
219filesystem would be corrupt in the last block group.
220
221Fixed bug where if e2fsck tried to allocate a block to fix a
222filesystem corruption problem and the filesystem had no free blocks,
223ext2fs_new_block() would loop forever.
224
225The configure script now checks explicitly to see if "-static" works,
226since that can't be assumed to be true --- RedHat doesn't install
227libc-static by default.
228
229Fixed bug in libext2's block iterator functions where under some
230cirmcustances, file with holes would cause the bcount parameter to the
231callback function to be incorrect. This bug didn't affect any of
232e2fsprogs programs, but it was discovered by Paul Mackerras, the
233author of the PPC boot loader.
234
235Removed use of static variables to store the inode cache in libext2fs.
236This caused problems if more than one filesystem was accessed via
237libext2fs (static variables in libraries are generally a bad idea).
238Again, this didn't affect e2fsprogs programs, but it was discovered by
239Paul Mackerras.
240
241Fixed minor bugs and version code drift to assure that e2fsprogs 1.10
242will compile cleanly with 1.2.13 kernels (even with a.out shared
243libraries!)
244
245Programmer's notes:
246-------------------
247
248Added new functions to duplicate an ext2 filesystem handle, and its
249associated substructure. New functions: ext2fs_dup_handle(),
250ext2fs_copy_dblist(), ext2fs_badblocks_copy(), ext2fs_copy_bitmap().
251Other structures, such as the io_channel and the inode_cache, now have
252a ref count so that they only get freed when they are no longer used
253by any filesystem handle. (These functions were added as part of the
254development effort for an ext2 resizer).
255
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000256E2fsprogs 1.09 (April 14, 1997)
257===============================
258
259Fixed bug in mke2fs (really in lib/ext2fs/initialize.c) which was
260accidentally introduced in the 1.08 release. The overhead calculation
261was accidentally removed, which caused ext2fs_initialize() to not
262notice when the filesystem size needed to be adjusted down because
263there wasn't enough space in the last block group.
264
265Fixed bug in version parsing library routine; it was always parsing
266the library version string, instead of using the passed-in string.
267
268Clarified chattr man page.
269
Theodore Ts'o24757fa1997-04-29 17:39:27 +0000270E2fsprogs 1.08 (April 10, 1997)
271===============================
272
273E2fsck 1.07 was very slow when checking very large filesystems with a
274lot of files that had hard links (i.e., news spools). This was fixed
275by seriously revamping the icount abstraction. Added a formal test
276suite for the icount abstraction.
277
278Debugfs now has a "-l" option to the "ls" command, which lists the
279inode number, permissions, owner, group, size, and name of the files
280in the directory.
281
282Fix a bug in e2fsck where when a directory had its blocks moved to
283another location during the pass 1b processing, the directory block
284list wasn't updated, so pass 2 wouldn't check (and correct) the
285correct directory block.
286
287E2fsck will now treat inodes which contain blocks which are claimed by
288the filesystem metadata by treating them as multiply claimed blocks.
289This way, the data in those blocks can be copied to a new block during
290the pass 1b--1d processing.
291
292E2fsck will attempt to determine the correct superblock number and
293display it in the diagnostic and warning messages if possible.
294
295Add support for a new (incompatible) feature, "sparse_super". This
296feature reduces the number of blocks which contain copies of backup
297superblocks and block group descriptors. (It is only an incompatible
298feature because of a bug in ext2_free_blocks.) mke2fs and tune2fs now
299support a new -s option; e2fsck will recognize filesystems built with
300this feature turned on.
301
302E2fsck now checks the library to make sure is the correct version,
303using new library functions. (This helps to diagnose incorrectly
304installed e2fsprogs distributions.)
305
306Dumpe2fs now prints more information; its now prints the the
307filesystem revision number, the filesystem sparse_super feature (if
308present), the block ranges for each block group, and the offset from
309the beginning of the block group.
310
311Mke2fs now distributes the inode and block bitmap blok so that the
312won't be concentrated in one or two disks in RAID/striping setups.
313Also, if the user chooses a 2k or 4k block group, mke2fs will try to
314choose the largest blocks per group that be chosen. (For 2k blocks,
315you can have up to 16384 blocks/group; for 4k blocks, you can have up
316to 32768 blocks/group.) Previously mke2fs would not allow
317specification of more than 8192 blocks per group, even if you were
318using a 2k or 4k block group.
319
320Programmer's notes:
321-------------------
322
323Added a new function ext2fs_create_icount2() which takes a "hint"
324argument. This hint argument presets the icount array with the list
325of inodes which actually need to be in the icount array. This really
326helps to speed up e2fsck.
327
328Added a new function ext2fs_icount_validate() which checks the rep
329invariant for the icount structure. This is used mostly for testing.
330
331The error mesasage given when a bad inode number is passed to
332test_generic_bitmap to reflect EXT2FS_TEST_ERROR (instead of
333EXT2FS_UNMARK_ERROR).
334
335Added a new function ext2fs_set_dir_block which sets the block of a
336dblist entry, given the directory inode and blockcnt.
337
338Added a new function ext2fs_get_library_version() which returns the
339current library version, and ext2fs_parse_version_string() which
340returns a version number based on a e2fsprogs version string.
341
342The icount functions will return EINVAL if the passed in inode number
343is out of bounds.
344
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000345E2fsprogs 1.07 (March 9, 1997)
346==============================
347
348E2fsck is now uses much less memory when checking really large
349filesystems (or rather, filesystems with a large number of inodes).
350Previously a filesystem with 1 million inodes required 4 megabytes of
351memory to store inode count statistics; that storage requirement has
352now been reduced to roughly half a megabyte.
353
354E2fsck can now properly deal with bad blocks appearing inside the
355inode table. Instead of trying to relocate the inode table (which
356often failed because there wasn't enough space), the inodes in the bad
357block are marked as in use.
358
359E2fsck will automatically try to use the backup superblocks if the
360primary superblocks have a bad magic number or have missing meta-data
361blocks (or meta-data blocks which are out of range).
362
363E2fsck's pass 3 has been made more efficient; most noticeable on
364filesystems with a very large number of directories.
365
366Completely revamped e2fsck's system of printing problem reports. It
367is now table driven, to make them more easily customizeable and
368extendable. Error messages which can be printed out during preen mode
369are now one line long.
370
371Fixed e2fsck's filesystem swapping code so that it won't try to swap
372fast symbolic links or deleted files.
373
374Fixed e2fsck core dumping when fixing a filesystem which has no
375directories (not even a root directory).
376
377Added a check to e2fsck to make sure that the length of every
378directory entry is a multiple of 4 (since the kernel complains if it
379isn't).
380
381Added a check to e2fsck to make sure that a directory entry isn't a
382link to the root directory, since that isn't allowed.
383
384Added a check to e2fsk to now make sure the '.' and '..' directory
385entries are null terminated, since the 2.0 kernel requires it.
386
387Added check to write_bitmaps() to make sure the superblock doesn't get
388trashed if the inode or block bitmap is marked as being block zero.
389
390Added checking of the new feature set fields in the superblock, to
391avoid dealing with new filesystem features that this package wasn't
392set up to handle.
393
394Fixed a fencepost error in ext2fs_new_block() which would occasionally
395try to allocate a block beyond the end of a filesystem.
396
397When the UUID library picks a random IEEE 802 address (because it
398can't find one from a network card), it sets the multicast bit, to
399avoid conflicting with a legitimate IEEE 802 address.
400
401Mke2fs now sets the root directory's owner to be the real uid of the
402user running mke2fs. If the real uid is non-zero, it also sets
403the group ownership of the root directory to be the real group-id of
404the user running mke2fs.
405
406Mke2fs now has more intelligent error checking when it is given a
407non-existent device.
408
409When badblocks is given the -vv option, it now updates the block that
410it is currently testing on every block.
411
412Fixed a bug in fsck where it wouldn't modify the PATH envirnoment
413currently correctly if PATH wasn't already set.
414
415Shared libraries now built with dependencies. This allows the shared
416library files to be used with dlopen(); it also makes the transition
417to libc 6 easier, since ld.so can tell which libc a particular shared
418library expects to use.
419
420Programmer's notes:
421-------------------
422
423Added new abstraction (defined in dblist.c) for maintaining a list of
424blocks which belongs to directories. This is used in e2fsck and other
425programs which need to iterate over all directories.
426
427Added new functions which test to see if a contiguous range of blocks
428(or inodes) are available. (ext2fs_*_bitmap_range).
429
430Added new function (ext2_inode_has_valid_blocks) which returns true if
431an inode has valid blocks. (moved from e2fsck code).
432
433Added new function (ext2fs_allocate_tables) which allocates the
434meta-data blocks as part of initializing a filesystem. (moved from
435mke2fs code).
436
437Added a new I/O manager for testing purposes. It will either allow a
438program to intercept I/O requests, or print debugging messages to
439trace the activity of a program using the I/O manager.
440
441The badblocks_list functions now store the bad blocks in a sorted
442order, and use a binary search to speed up badblocks_list_test.
443
444The inode scan function ext2fs_get_next_inode() may now return a soft
445error returns: MISSING_INODE_TABLE and BAD_BLOCK_IN_INODE_TABLE in
446those cases where part of an inode table is missing or there is a bad
447block in the inode table.
448
449Added a new function (ext2fs_block_iterate2) which adds new arguments to
450the callback function to return a pointer (block and offset) to the
451reference of the block.
452
453Added new function (ext2fs_inode_scan_goto_blockgroup) which allows an
454application to jump to a particular block group while doing an inode
455scan.
456
457The badblocks list functions were renamed from badblocks_* to
458ext2fs_badblocks_*. Backwards compatibility functions are available
459for now, but programs should be modified to use the new interface.
460
461Some of the library functions were reorganized into separate files to
462reduce the size of some programs which statically link against the
463ext2 library.
464
465Put in some miscellaneous fixes for the Alpha platform.
466
Theodore Ts'o5c576471997-04-29 15:29:49 +0000467
468E2fsprogs 1.06 (October 7, 1996)
469================================
470
471Fixed serious bug in e2fsck: if the block descriptors are bad, don't
472smash the backup copies in ext2fs_close(). (The problem was that when
473e2fsck -p discovered the problem, while it was closing the filesystem
474and exiting, it was also blowing away the backup superblocks on the
475disk, which was less than friendly.) We now make it the case that we
476only write out the backup superblock and the back block descriptors if
477the filesystem is completely free from problems.
478
479Fixed a bug in block_interate in the lib/ext2fs library which caused
480e2fsck to fail on GNU Hurd-created filesystems.
481
482Add support for Linux/FT's bootloader, which actually uses
483EXT2_BOOT_LOADER, and sets its mode bits which caused e2fsck to want
484to clear the inode.
485
486Add support for the "A" (no atime update) attribute. (Note: this
487attribute is not yet in production kernels.)
488
489The test suite is not automatically run when doing a "make all" from
490the top level directory. Users should manually run "make check" if
491they wish to run the test suite.
492
493Upon a preenhalt(), make the printed message more explicit that
494running e2fsck "MANAULLY" means without the -p or -a options.
495
496In e2fsck, if a disconnected inode is zero-length, offer to clear it
497instead of offering to connect it to lost+found.
498
499In e2fsck, if a filesystem was just unmounted uncleanly, and needs
500e2fsck to be run over it, change e2fsck to explicitly display this
501fact.
502
503For dumpe2fs and e2fsck, cause the -V option to print out which
504version of the ext2fs library is actually getting used. (This will
505help detect mismatches of using a 1.06 utility with a 1.05 library,
506etc.)
507
508Programmers' notes:
509-------------------
510
511EXT2_SWAP_BYTES was changed to EXT2_FLAG_SWAP_BYTES, which better fits
512the naming convention.
513
514In ext2fs_initialize(), make sure the description for the inode bitmap
515is correctly initialize.
516
517Fixed minor type typo in ext2fs_allocate_generic_bitmap();
518
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000519E2fsprogs 1.05 (September 7, 1996)
520==================================
521
522Add support for new fields in the ext2 superblock --- volume name,
523volume UUID, and last mounted field. Dumpe2fs displays these fields,
524tune2fs and mke2fs allows you to set them. E2fsck will automatically
525generate a UUID for those volumes that don't have them.
526
527Put in support for e2fsck to recognize HURD specific ext2 features ---
528most notably, the translator block. The e2fsprogs tools will now use
529the creator_os field in the superblock to correctly handle different
530OS-specific variants of the ext2 filesystem.
531
532E2fsck now fixes inodes which have a the deletion time set, but which
533have a non-zero i_link_count field by offering to clear the deletion
534time. Previously e2fsck assumed that the inode was deleted (per 0.3c
535ext2 kernel behavior) and offered to unlink the file.
536
537If e2fsck sets the clean bit, but nothing else, set the exit code
538FSCK_NONDESTRUCT. After all, e2fsck did fix a filesystem error --- it
539set the filesystem valid bit when it was previously cleared. :-) This
540was needed to make the HURD fsck driver happy.
541
542If the user refuses to attach an unattached inode, e2fsck will no
543longer set the inode's link count. Otherwise, the inode would end up
544getting marked as unused, which might cause loss of data later.
545
546Make the message issued by e2fsck when the superblock is corrupt less
547confusing for users. It now mentions that another reason for the
548"corrupt superblock" message might be that the partition might not be
549an ext2 filesystem at all (it might swap, msdos filesystem, ufs, etc.)
550
551Make the libext2 library more robuest so that e2fsck won't coredump on
552an illegal superblock where the blocksize is zero. (f_crashdisk is
553the test case).
554
555By default, create filesystems where the default checkinterval is 6
556months (180 days). Linux servers can be robust enough that 20 reboots
557can be a long, long time.
558
559Added configure flag --enable-old-bitops, which forces the bitops to
560use the old (native) bitmask operations. By default on the sparc
561platform, the standard ext2 bit ordering is now used.
562
563Added a new feature to e2fsck to byte-swap filesystems; this can be
564used to convert old m68k filesystems to use the standard byte-order
565storage for the superblock, inodes, and directory blocks. This
566function is invoked by using the '-s' option to e2fsck.
567
568Debugfs's "dump" command has been enhanced so that it writes out the
569exact size of the file so that the nulls at the end of the file are
570eliminated. The command also accept a new "-p" option which will
571attempt preserve to preserve the ownernship, permissions, and
572file modification/access times.
573
574Debugfs has two new options, -f and -R. The -R option allows the user
575to execute a single debugfs command from the command line. The -f
576option allows the user to specify a "command file" containing debugfs
577commands which will get executed.
578
579Dumpe2fs now pretty prints the check interval, instead of just
580printing the check interval as a number of seconds.
581
582Fix bugs in debugfs: the params command when no filesystem is opened
583no longer causes a core dump. It is now possible to unlink a file
584when a pathame containing a '/' is specified.
585
586Tune2fs has a new -C option which sets the number of times the
587filesystem has been mounted.
588
589Fix the chattr '-v' option so that it actually works. Chattr was
590being buggy about the -v option parsing.
591
592Programmers' notes:
593-------------------
594
595The directory lib/uuid contains a set of library routines to generate
596DCE compatible UUIDs.
597
598Extended ext2fs_namei() to handle symbolic links. Added new function
599ext2fs_nami_follow() which will follow last symbolic link in the case
600where the pathname points to a sym link.
601
602The ext2fs_block_iterate function will now return the HURD translator
603block, if present. The new flag BLOCK_FLAG_DATA_ONLY will cause the
604iterator to return data blocks only. The ext2fs.h file now defines
605constants BLOCK_COUNT_IND, BLOCK_COUNT_DIND, BLOCK_COUNT_TIND, and
606BLOCK_COUNT_TRANSLATOR, which are the magic values passed in the block
607count field of the iterator callback function.
608
609The test script driver now takes an optional second argument, which is
610the test case to be run. This allows you to run a test case without
611needing to run the entire test suite.
612
613On Linux ELF systems, install the .so files in the correct places
614(/usr/lib). The .so files must be stored in the same directory as the
615.a files.
616
617Fixed miscellaneous HURD compilation issues with header file being
618included in the right order.
619
620Fixed debugfs so that it resets optind to zero, not one, since setting
621optind to zero is more correct.
622
623
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000624E2fsprogs 1.04 (May 16, 1996)
625=============================
626
627First "official" (1.03 was a limited release only) to support building
628e2fsprogs under Linux 2.0 kernels (as well as late model 1.3 and 1.99
629kernels).
630
631This package includes a RPM specs file, that it can be built using the
632RedHat Package Manager.
633
634E2fsck now prints a hint that if there are lots of incorrectly located
635inode bitmaps, block bitmaps, and inode table blocks, the user might
636want to try using e2fsck -b 8193 first, to see if that fares any
637better.
638
639For ext2 filesystem written with the hurd, debugfs will now print out
640the translator field when printing an inode structure.
641
642Lots of miscellaneous linking/installation cleanups:
643
644 Libraries are now linked using a relative pathname, instead of
645 relying on -L working correct. It doesn't, in many cases, including
646 current versions of GNU ld. This guarantees that the build tree is
647 linking with the right libraries, instead of the ones installed in
648 /usr/lib.
649
650 Header files, man pages, and the et/ss shell scripts are now
651 generated using a custom substitution script, instead of relying on
652 the configure script. This prevents needless recompilation of
653 files; in addition, the custom substitution script is much faster.
654
655 e2fsck may now be linked dynamically, by using the
656 --enable-dynamic-e2fsck flag to configure. This is not recommended,
657 since it increases e2fsck's dependence on other files, but some
658 people need to save disk space, and other critical programs on their
659 systems were being linked dynamically anyway.
660
661 Programs such as fsck which didn't need to be linked against
662 libext2fs (or mke2fs which didn't need to be linked against libe2p)
663 only link against libraries they actually need. Otherwise, those
664 programs would require the presense of libraries that otherwise
665 could be removed from a rescuse diskette.
666
667 The ss include files are now installed correctly so they can
668 actually be used by another package.
669
670 If the profiling libraries are built, they are now installed on a
671 "make install-libs".
672
673
Theodore Ts'o7f88b041997-04-26 14:48:50 +0000674E2fsprogs 1.03 (March 27, 1996)
675===============================
676
677Change the m68k bit numbering for bitmasks to match the bit numbering
678used by all other ext2 implementations. (This change was requested by
679the m68k kernel development team.)
680
681Support (in-development) filesystem format revision which supports
682(among other things) dynamically sized inodes.
683
684Fixed a bug in the ext2 library so that an intelligent error is
685returned if mke2fs is run with a ridiculously small number of blocks
686for a partition.
687
688Fixed a bug in the ext2 library which required that the device be
689openable in read/write mode in order to determine its size. This
690caused e2fsck -n to require read/write access when it was not
691previously necessary.
692
693Fixed a bug in e2fsck which casued it to occasionally fail the test
694suite depending on which version of the floating point library it was
695using.
696
697Fixed a bug in e2fsck so that it now halts with a fatal error when
698certain superblock consistency checks fail. Previously it continued
699running e2fsck, with some potential confusing/damaging consequences.
700
701Added new flag to fsck which allows the root to be checked in parallel
702with other filesytems. This is not the safest thing in the world to
703do, but some system administrators really wanted it.
704
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000705Fixed -Wall flames in lib/ss.
706
Theodore Ts'o74becf31997-04-26 14:37:06 +0000707
708E2fsprogs 1.02 (January 16, 1996)
709=================================
710
711Fix to allow e2fsprogs to be compiled on recent 1.3 (pl45+) kernels.
712
713Change e2fsck to print statistics of how many non-contiguous files are
714on the system. Note that a file which is larger than 8k blocks, it is
715guaranteed to be non-contiguous.
716
717In mke2fs, print a warning message if a user tries to format a whole
718disk (/dev/hda versus /dev/hda1). If a user really wants to format a
719whole disk, the -F (force) option forces mke2fs to format a whole disk
720as a filesytem.
721
722Fix a bug in fsck where in some cases it might start checking
723partitions in the next pass before it finishes checking partitions in
724the current pass. This still won't cause two partitions on the same
725disk will be checked, so it's rarely a problem in real life.
726
727Patch lsattr so that it won't hang when checking a named pipe.
728
729Minor compilation fixes:
730 * Fix the order of libraries that were linked in debugfs.
731 * Allow the sources to be compiled with -ansi turned on.