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