+2000-01-19 Theodore Ts'o <tytso@valinux.com>
+
+ * tune2fs.c (usage): Update the usage message to correctly
+ document the -s option.
+
+2000-01-18 Theodore Ts'o <tytso@valinux.com>
+
+ * badblocks.c: Folded in patches David Beattie <dbeattie@usa.net>.
+ Need to do cleanup before release: use of GCC extensions
+ (dynamic arrays); unclean coding tricks (use of || instead
+ of if statements, etc.). Comments from David Beattie:
+
+ "I added non-destructive write-testing, and quite a few
+ other features. The non-destructive write testing,
+ triggered by new "-n" command-line option, will write test
+ patterns to the disk, but only after reading data off the
+ disk into memory. Then, comparing the test patterns gives
+ a result as to whether or not those sectors are reliable.
+ Finally, the original data is written back.
+
+ To streamline this operation, I added another option, "-c
+ blocks_at_once", which will give the number of disk blocks
+ to process at one time (mnemonic--"count"). I made this
+ default to 16 (as in the read-only testing mode), and also
+ affect the read-only testing mode. Of course, read-only
+ mode needs (count * block_size) amount of memory, and
+ non-destructive read-write needs 3 times that much, so it
+ makes sense to do the calculations and not overrun
+ available RAM...I would have liked to implement and
+ auto-memory-usage heuristic, but I have no idea if it's
+ even possible to determine the amount of free memory on a
+ Unix system except by reading /proc entries, and that
+ didn't seem portable. I did NOT make this blocks_at_once
+ affect the behavior of the test_rw routine, as it is
+ processing the whole disk at once, anyway.
+
+ I *think* that I got higher detection rates on my hard
+ drive using random test data than patterned test data, so
+ my non-destructive mode initializes its test data buffer
+ randomly.
+
+ I fixed a typo in flush_bufs that caused the ioctl
+ BLKFLSBUF to never get compiled into the program.
+
+ Also, I added an "undocumented" (I didn't put it into the
+ usage message; you can if you think it's useful) "-h"
+ option to specify the host device to flush--useful if you
+ want to test out my "non-destructive" code on something
+ other than a hard drive, such as a file on a hard drive,
+ and want the host hard drive to flush.
+
+ I provided support for an "input" file (via option "-i",
+ similar to the "-o" option)...containing a list of
+ already-known bad blocks; it will skip testing those
+ blocks, thus adding speed to the bad block scan (on my
+ computer, hitting a physically bad block causes a
+ half-second-or-more freeze as the kernel waits for the
+ hard drive to give up and reset itself; pretty annoying
+ when you already know the block is bad from a previous
+ scan).
+
+ Finally, the real killer, the persistent re-scan (option:
+ "-p num_passes") that I created will, if desired,
+ persistently re-scan the drive until it has completed a
+ user-decidable number of passes in a row during which no
+ new bad blocks are found. On my drive, I would see
+ behavior that a certain percentage of bad blocks would be
+ found with each pass (it was not reliable in the defective
+ areas!), so I wanted it to check it over and over again
+ until it didn't find any more, several times. Perhaps
+ this will be useful to others. Defaults of course to
+ zero, meaning it will stop after the first pass. I used
+ "-p 2" on my drive, and it ran for 2 1/2 days...then used
+ "-p 3" a couple days later and it ran for a few more
+ hours, and since then the rest of my drive has been
+ completely reliable.
+
+ Implementation of these last two features, "-i" and "-p",
+ I did using a bb_list from libext2fs. I debated whether
+ bad blocks input through "-i" should be output into the
+ "-o" file (or stdout, of course), and decided against it,
+ but left the code to do so in place, commented out, just
+ for your information.
+
+ In order to maintain data integrity upon interruption of a
+ non-destructive-write test, I created a signal handler
+ which I install which will write back whatever original
+ disk data is in the buffers upon any of the fatal signals
+ (except SIGKILL, of course).
+
+ Of course, ideally, the new options would be reflected in
+ the badblocks manual page, but I am not experienced at
+ manual page modification; if you decide my patch to
+ badblocks should be incorporated into the distribution, I
+ could learn how to update the manpage and other
+ documentation, or you could do it for me after exercising
+ your opinions, if you have any, on exactly what the
+ command-line parameters should be called and which ones
+ should be in the distribution."
+
+2000-01-07 Theodore Ts'o <tytso@valinux.com>
+
+ * Really fix the bug where "fsck -As" will actually allow
+ interactive fsck's. (For those people who like to do
+ interactive fsck's in the /etc/rc scripts!?!)
+
+1999-11-23 <tytso@valinux.com>
+
+ * tune2fs.8.in: Fix man page so that the sparse_super filesystem
+ option is properly named.
+
+1999-11-22 <tytso@valinux.com>
+
+ * mke2fs.c: Change log2() and log10() to int_log2() and
+ int_log10() to avoid namespace collisions. Change #ifdef
+ sparc to #ifdef __sparc__.
+
+1999-11-19 <tytso@valinux.com>
+
+ * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
+ the source directory.
+
+1999-11-10 <tytso@valinux.com>
+
+ * Release of E2fsprogs 1.18
+
+1999-11-10 <tytso@valinux.com>
+
+ * mke2fs.8.in: Update manual page so that the sparse_option
+ filesystem option is properly named.
+
+1999-11-04 <tytso@valinux.com>
+
+ * fsck.c (main): Move setting of the interactive flag to before
+ the call to check_all(), so that people who try to use
+ fsck -As can do so interactively.
+
+1999-10-26 <tytso@valinux.com>
+
+ * Release of E2fsprogs 1.17
+
+1999-10-26 <tytso@valinux.com>
+
+ * fsck.c (PRS, device_already_active): Add debugging hook; if the
+ environment variable FSCK_FORCE_ALL_PARALLEL is set, then
+ force all fsck runs to happen in parallel.
+
+ * get_device_by_label.c (has_right_label): Fixed bug where code
+ used a strncmp to compare a binary UUID value which may
+ contain a NULL. Fixed GCC warnings; added const to char *
+ typed variables. Eliminated non-portable use of u_char.
+
+ * mke2fs.c (PRS): Fix gcc warnings; add const to some char *
+ variables, including in struct mke2fs_defaults.
+ (set_fs_defaults): Changed parameter name to avoid
+ gcc warnings.
+
+ * fsck.c (wait_one): Fix gcc warnings; add #include for ctype.h,
+ add const to char * variables, and use NOARGS to declare
+ functions that take no arguments. Also fix a memory leak
+ in execute() where we weren't freeing argv[] after forking
+ the child process.
+
+ * chattr.c: Add hack to compile in a definition for S_ISLNK so we
+ can successfully compile even with warnings turned on.
+
+1999-10-25 <tytso@valinux.com>
+
+ * mke2fs.c (show_stats): Capitalized Hurd to make the GNU types
+ happy.
+ (PRS): Use __u64 instead of long long for portability
+ reasons. Also moved #include of sys/stat.h inside #ifdef
+ HAVE_LINUX_MAJOR_H for portability reasons.
+
+ * fsck.c (execute): Fix really stupid bug in the linked list
+ management which caused fsck in parallel mode to go into
+ an infinite loop.
+
+1999-10-22 <tytso@valinux.com>
+
+ * Release of E2fsprogs 1.16
+
+1999-10-22 <tytso@valinux.com>
+
+ * tune2fs.c (main): Add a new option -O which allows the user to
+ set and clear certain "safe" filsystem feature flags.
+ Currently, the only ones which are supported for
+ modification are sparse_superblock and filetype.
+
+ * mke2fs.c (PRS): Add new option -O which allows the user to
+ request filesystems with specific filesystem options. By
+ default on 2.2 and later systems, create filesystems that
+ have both file type information and sparse superblocks.
+
+1999-10-21 <tytso@valinux.com>
+
+ * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, e2label.8.in,
+ fsck.8.in, lsattr.1.in, mke2fs.8.in, mklost+found.8.in,
+ tune2fs.8.in, uuidgen.1.in: Update man page to use a more standard
+ format (bold option flags and italicized variables), as
+ suggested by Andreas Dilger (adilger@enel.ucalgary.ca)
+
+1999-10-14 <tytso@valinux.com>
+
+ * tune2fs.c (main): Fix typo (double spaces) in messages regarding
+ changing the sparse superblock option
+
+ * fsck.c (wait_one): If the fsck process just started, wait a
+ second before sending a SIGUSR1, to give it a chance
+ to set the signal handler; otherwise, fsck will die on an
+ unhandled SIGUSR1.
+
+1999-09-15 <tytso@valinux.com>
+
+ * mke2fs.c (show_stats): Fix display bug when printing out the
+ number of superblocks. Suggested by Yann Dirson.
+
+1999-09-08 <tytso@valinux.com>
+
+ * partinfo.c: Fix minor compilation bugs pointed out by Yann
+ Dirson.
+
+ * mke2fs.c: Don't turn on sparse superblocks by default on pre-2.2
+ kernels.
+
+ * mke2fs.8.in: Add the possible valid block sizes for mke2fs.
+ Document the -n flag, and the new defaults for the -s
+ flag.
+
+ * dumpe2fs.c, dumpe2fs.8.in: Add new options -f (force) and -h
+ (header-only).
+
+1999-08-13 <tytso@valinux.com>
+
+ * mke2fs.c (PRS): Fix logic for turning on/off the sparse
+ superblock option.
+
+1999-07-18 Theodore Ts'o <tytso@valinux.com>
+
+ * Release of E2fsprogs 1.15
+
+1999-07-18 <tytso@rsts-11.mit.edu>
+
+ * mke2fs.c (PRS, set_fs_defaults): Add new option -T which allows
+ the user to specify the how the filesystem is to be used.
+ Mke2fs now chooses the filesystem parameters automatically
+ based on the size of the filesystem and the intended use
+ of the filesystem. Add new option -n which simply goes
+ through the calculations to determine the parameters of
+ the filesystem the system would make.
+
+1999-07-18 <tytso@valinux.com>
+
+ * fsck.c, fsck.h: Add support for new option -C. This option will
+ automatically manage e2fsck processes so that they will
+ print completion/progress bars. If multiple filesystems
+ are being checked, arrange to make sure that only one
+ e2fsck process is displaying a progress bar at a time.
+
+1999-07-08 <tytso@valinux.com>
+
+ * badblocks.c (do_test): Don't complain if the write error occurs
+ on a non-block boundary. This is perfectly common when
+ using blocksizes larger than 1k.
+
+1999-07-03 <tytso@valinux.com>
+
+ * uuidgen.c: Add option parsing so that user can ask for either a
+ time-based UUID or a random-based UUID.
+
+1999-07-02 <tytso@valinux.com>
+
+ * fsck.c: Added support for LABEL= and UUID= specifications for
+ the filesystem's device, to match what recent mount
+ programs can support. Also, close stdin when doing fsck
+ -A or when checking more than one filesystem at a time, so
+ that e2fsck doesn't try to ask interactive questions if
+ the filesystem appears to be mounted.
+
+ * get_device_by_label.c: New file added to support LABEL=foo and
+ UUID=bar type specifications.
+
+1999-07-01 <tytso@valinux.com>
+
+ * badblocks.c: Make the "done" string include enough spaces to
+ clear out a large block number.
+
+1999-06-29 <tytso@valinux.com>
+
+ * mke2fs.c (check_mount): Allow a filesystem to be made even if it
+ appears mounted if the force option is given.
+
+1999-06-24 <tytso@valinux.com>
+
+ * mke2fs.8.in: Fix typo in man page which caused the badblocks
+ command to not show up in the "SEE ALSO" section.
+
+1999-05-02 <tytso@rsts-11.mit.edu>
+
+ * findsuper.c: Added documentation from aeb@cwi.nl; some minor
+ code cleanups.
+
+1999-05-20 <tytso@rsts-11.mit.edu>
+
+ * dumpe2fs.c, dumpe2fs.8.in: Added new command-line options which
+ allow a filesystem expert to specify the superblock and
+ blocksize when opening a filesystem. This is mainly
+ useful when examining the remains of a toasted filesystem.
+
+1999-03-11 Andreas Dilger <adilger@enel.ucalgary.ca>
+
+ * uuidgen.c, uuidgen.1.in: Created command-line utility to
+ generate UUIDs.
+
+1999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (fsck_device, execute): Don't dereference a null pointer
+ when checking a filesystem not in /etc/fstab.
+
+1999-02-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (fsck_device): Print an error message if the user passes
+ in a device or directory name which isn't found in /etc/fstab.
+ Allow the location of /etc/fstab to be overridden by
+ the FSTAB_FILE environment variable.
+
+1999-01-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * mke2fs.c (write_inode_tables): Add kludge code so that when the
+ MKE2FS_SYNC environment variable is set, mke2fs will sync
+ every MKE2FS_SYNC block groups, while it is writing out
+ the inode tables. This is to work around a VM bug in the
+ 2.0 kernel. I've heard a report that a RAID user was able
+ to trigger it even using a 2.2 kernel.
+
+1999-01-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (execute, wait_one): Modified routines so that they
+ accurately create an fsck_instance even when the noexecute
+ flag is set. This allows for accurate debugging of the
+ fsck pass structure.
+ (check_all): When the verbose flag is given twice, print
+ debugging information about when fsck is waiting for jobs
+ to finish.
+
+1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Release of E2fsprogs 1.14
+
+1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.8.in: Clarified and expanded the documentation for the -A
+ switch.
+
+1999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (load_fs_info): If the pass number field is missing, it
+ needs to be treated as zero.
+
+1999-01-05 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * mke2fs.c (PRS): Allow the user to specify exactly how many
+ inodes he/she wishes.
+
+ * chattr.c, lsattr.c: Only print the version information for the
+ program if the -V option is given.
+
+ * chattr.c: Ignore symbolic links when doing a recursive descent
+ through a directory.
+
+1999-01-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (load_fs_info, parse_fstab_line): Ignore fstab lines
+ are commented out. Also allow blank lines in the
+ /etc/fstab file.
+ (execute): In verbose mode, print the mountpount of the
+ filesystem which we are checking (user request).
+
+1998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * mke2fs.c: Add definition of SCSI_BLK_MAJOR if not defined, for
+ compatibility with Linux 1.2.13 header files.
+
+1998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Release of E2fsprogs 1.13
+
+1998-12-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * mke2fs.8.in: Fixed stupid typo ("Raid options are _comma_
+ seperated", instead of common separated)
+
+1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Makefile.in: Updated dependencies.
+
+1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (load_fs_info): Parse /etc/fstab ourselves, instead of
+ relying on getmntent(). This has the advantage of
+ allowing us to properly handle missing pass numbers correctly.
+
1998-11-13 Theodore Ts'o <tytso@rsts-11.mit.edu>
* tune2fs.8.in: Fix minor display bug in the nroff.