Whamcloud - gitweb
ChangeLog, tune2fs.c:
[tools/e2fsprogs.git] / misc / ChangeLog
index da3c7bb..cea78ab 100644 (file)
@@ -1,3 +1,285 @@
+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