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