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