1 2000-12-28 <tytso@snap.thunk.org>
3 * base_device.c (base_device): Add support for DAC960 device
6 * fsck.c (device_already_active): Handle the case where
7 base_device doesn't know how to interpret the device name,
8 instead of core dumping.
10 2000-12-09 <tytso@snap.thunk.org>
12 * mke2fs.c (main, parse_journal_opts): Add support for creating V1
13 superblocks. We now pass in a journal_flags field to the
14 journal creation routines for this purpose.
16 * mke2fs.c: Remove zero initializers to save a few bytes from the
17 executable image. (Are we excited yet?)
19 * findsuper.c: And non-subtle copyright licensing restriction to
20 get Yann to remove this program from the Debian package. :-)
22 2000-12-03 <tytso@snap.thunk.org>
24 * fsck.c (device_already_active): Change to use new version of
25 base_device() which now returns dynamically allocated
28 * base_device.c (base_device): New version moved from fsck.c which
29 now understands ugly devfs names. (Debian bug #65181)
31 * base_device.tst: Test case for base_device.c
33 2000-12-02 <tytso@snap.thunk.org>
35 * fsck.8.in: Add clarification that filesystems with a fs_passno
36 of 0 are skipped with the -A option. (Debian wishlist/bug
39 * fsck.c (wait_one): When we let a new fsck take control of the
40 console to display the progress bar, set FLAG_PROGRESS to
41 so that fsck knows not to start new processes during an
42 fsck pass with the progress bar. (Should fix debian bug
45 * tune2fs.8.in: Add clarifying statement about converting user and
46 group names to uid's before storing them in the
47 superblock. (Debian bug #67446)
49 2000-11-16 Theodore Ts'o <tytso@valinux.com>
51 * mke2fs.c(main): Expand the -j option so that it parses
52 option=argument style options, and add support for
53 creating filesystems with external journals.
55 * mke2fs.8.in: Document new syntax for the -j option.
57 2000-11-05 <tytso@snap.thunk.org>
59 * e2image.c, Makefile.in: New program which saves ext2 metadata to
60 a file for people who need a last-ditch saving throw.
62 2000-10-24 <tytso@snap.thunk.org>
64 * mke2fs.c (PRS): Applied Andreas Dilger's patch to make the -r -s
65 handling a bit more sane. (Even though -s is deprecated
68 * get_device_by_label.c: Apply fix from Erik Troan to support 16
71 * fsck.c (device_already_active): Add a special case check for MD
72 devices, so we don't try to check them in parallel with
75 * mke2fs.c (PRS, main), mke2fs.8.in: Add support for the -j
76 option, which builds an ext2/3 filesystem with an ext3
79 2000-10-24 <tytso@valinux.com>
81 * mke2fs.c (zap_sector): Fix really stupid typo which gcc 2.95
84 2000-09-12 <tytso@valinux.com>
86 * fsck.c: Add base device definitions for hd[e-h], for those
87 systems with four IDE interfaces.
89 2000-09-11 <tytso@valinux.com>
91 * mke2fs.c (zap_sector): Fix error message printed when zap_sector
94 * dumpe2fs.c (list_desc): Fixed format string bug when printing
95 the inode table location in non-hex format.
97 2000-08-20 <tytso@valinux.com>
99 * get_device_by_label.c: Add call to ext2fs_find_block_device if
100 we can't find the device using the name given by
101 /proc/partitions. (This can happen if devfs is compiled
102 into the kernel, but not mounted.)
104 2000-06-27 Andreas Dilger <adilger@turbolabs.com>
106 * dumpe2fs.c (usage): add fhx options to usage message, add -x option
107 to print out the per-group block numbers in hex, add line for
108 location of primary/backup superblock and group descriptors
110 * mke2fs.c: rename max to group_blk_max avoid potential macro conflict
112 2000-08-14 <tytso@valinux.com>
114 * mke2fs.c (zap_sector): Change zap_bootsect to more general
116 (main): Clear the superblock when starting mke2fs, to
117 avoid leaving the filesystem in an inconsistent state.
119 2000-07-26 <tytso@valinux.com>
121 * get_device_by_label.c: Improve /proc/partitions parsing in
122 fsck, and speed up fsck -a.
124 2000-07-13 <tytso@valinux.com>
126 * Release of E2fsprogs 1.19
128 2000-07-13 <tytso@snap.thunk.org>
130 * badblocks.8.in: Added text explaining that the -n and -w options
131 are mutually exclusive.
133 * badblocks.c (usage): Fix usage message to make it clear that the
134 block count must be specified if the starting block is to
135 be specified. (The starting block should be a option, in
138 * badblocks.c (test_nd): Save and restore the currently_testing
139 variable before going into the write verification loop.
140 This avoids a loop termination problem if the last block
141 on the disk is bad. Also, turn off the SIGALRM signal
142 while restoring blocks after the user types ^C. The
143 num_saved variable is now static so that it won't get
144 clobbered by a longjmp. buf_used and bb_count are no
145 longer static, since they aren't used by the cleanup
148 * badblocks.c (main): Removed an unsued varaible (buf_size).
149 Fixed bad getopt argument that didn't allow the 'b' option
150 to take an argument. Added error checking when parsing
151 the starting block number. Fixed lint warning in fscanf
154 2000-07-06 Theodore Ts'o <tytso@valinux.com>
156 * fsck.c (execute, wait_one): Treat fsck.ext3 the same as
157 fsck.ext2 (because they are the same) for the purposes of
158 the progress bar display logic.
160 * tune2fs.8.in: Update manual page to document what happens if
161 max_mount_count is negative.
163 * tune2fs.c (main): Allow setting the maximal count value to be
164 negative, since the kernel interprets that as forcing a
167 * fsck.c (lookup, load_fs_info, check_all): Use lazy evaluation
168 for calling interpret_device(), since this requires root
169 privileges if the partitions need to be scanned.
170 Otherwise, it's not possible to do non-proot fsck's for
171 removeable devices such as floppies if there are any
172 LABEL= or UUID= entries in /etc/fstab.
174 * badblocks.c (check_mount, main): Check to see if the filesystem
175 is mounted before doing a read/write or non-destructive
176 test. This can be overriden using the new -f option.
178 * badblocks.8.in: Update manual page to reflect that the
179 blocks-count parameter is now optional. Also properly
180 document the start-block parameter. Added documentation
183 * badblocks.c (main): Allow the blocks-count parameter to be
184 optional. If it's not specified, use the size of the
187 2000-07-05 Theodore Ts'o <tytso@valinux.com>
189 * badblocks.c (test_nd): Significantly simplify the logic so that
190 it's more obviously what's going on. Fixed a few
191 potential cases which weren't handled correctly in the
192 old, overly complicated logic.
193 (flush_bufs): Now doesn't take a second argument, and
194 always forces a sync; this is required before it's really
195 safe to call BLKFLSBUF, at least for some kernels.
197 2000-05-29 Theodore Ts'o <tytso@valinux.com>
199 * mke2fs.c (PRS): Add a much more specific error message if the
200 filesystem size is defaulted and get_device_size returns a
201 size of zero. Otherwise, users get a confusing "invalid
202 argument while passed to ext2 library" error message.
204 2000-05-08 Theodore Ts'o <tytso@valinux.com>
206 * fsck.c (interpret_device): Add better error messages if a UUID=
207 or LABEL= specification is given.
209 * mke2fs.c (main): We forcibly turn off the filetype feature if
210 the OS is the hurd, since the hurd doesn't support it.
211 (And since the hurd allows the transmogrification of files
212 to special files and vice versa --- for no good reason
213 that I can understand --- it can't support the filetype
214 feature for the forseeable future, either.)
216 * mke2fs.c (proceed_question): Fix reversed sense of
217 proceed_question that was busted due to the
218 internationalization patch. Fixed bug where if
219 proceed_question was called twice, the input buffer wasn't
220 cleared of the previous question's newline.
222 Thu Apr 6 17:50:25 2000 Theodore Y. Ts'o <tytso@signal.thunk.org>
224 * badblocks.c (flush_bufs): Use fsync() if the system doesn't
227 2000-04-03 Theodore Ts'o <tytso@valinux.com>
229 * badblocks.c, dumpe2fs.c, e2label.c, mke2fs.c, tune2fs.c,
230 uuidgen.c: For platforms that don't define optarg.h,
231 manually define optarg and optind.
233 * badblocks.8.in: Updated manual page with suggestions from David
236 * badblocks.c (test_nd): Generalized cleanup and bug-fixes. We
237 now explicitly clear out the signal handlers to prevent a
238 longjmp to a deactivated stack frame.
239 (test_rw): Fixed a signed vs. unsigned comparison error.
241 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, lsattr.1.in,
242 mklost+found.8.in, tune2fs.8.in: Update Remy Card's e-mail
244 chattr.1.in: Update which attributes aren't supported.
246 2000-02-09 Theodore Ts'o <tytso@valinux.com>
249 * lsattr.1.in: Change "version" to "version/generation number".
251 * chattr.1.in: Fix stupid file vs filesystem typo.
253 * tune2fs.c Fix spelling error (spare vs sparse).
255 * mke2fs.c (PRS): Add safety check to make sure the number of
256 blocks doesn't exceed 32 bits on a 64 bit machine.
258 * chattr.c: Random cleanup; file-only variables are now static.
259 Options for setting/clearings flags put into order, and
260 #ifdef's removed (since we now use a built-in header
261 file). Add error message if user tries to set and reset
264 * lsattr.c: Random cleanup; file-only variables are now static.
265 The -l "long" listing has been changed to look nicer.
266 Options names have been renamed to be more descriptive.
268 2000-02-06 Theodore Ts'o <tytso@valinux.com>
270 * badblocks.c, chattr.c, dumpe2fs.c, e2label.c, findsuper.c,
271 fsck.c, get_device_by_label.c, lsattr.c, mke2fs.c,
272 mklost+found.c, nls-enable.h, partinfo.c, tune2fs.c,
273 uuidgen.c: Add Internationalization support as
274 suggested by Marco d'Itri <md@linux.it>.
276 * badblocks.c: Fix non-destructive read/write patches from David
277 Beattie. Non-standard variable-length automatic arrays
278 removed. Non-destrutive write test fixed so that logic is
279 clearer and more provably correct. (I believe the old
280 code had a bug where the disk data wasn't restored if it
281 was interrupted at the wrong time.)
283 * badblocks.8.in: Document new options in man page.
285 2000-02-02 Theodore Ts'o <tytso@valinux.com>
287 * fsck.c (interpret_device): If there was an attempt to interpret
288 a device specification of the type "UUID=" or "LABEL=",
289 and it fails, check to see if /proc/partitions is
290 readable. If not, print a warning message about /proc
291 perhaps not being mounted, and exit.
293 * mke2fs.c (check_plausibility): Remove unneeded #include of
294 linux/fs.h. Add #define of MAJOR if necessary.
296 * partinfo.c: Remove unneeded #include of linux/fs.h
298 2000-01-19 Theodore Ts'o <tytso@valinux.com>
300 * tune2fs.c (usage): Update the usage message to correctly
301 document the -s option.
303 2000-01-18 Theodore Ts'o <tytso@valinux.com>
305 * badblocks.c: Folded in patches David Beattie <dbeattie@usa.net>.
306 Need to do cleanup before release: use of GCC extensions
307 (dynamic arrays); unclean coding tricks (use of || instead
308 of if statements, etc.). Comments from David Beattie:
310 "I added non-destructive write-testing, and quite a few
311 other features. The non-destructive write testing,
312 triggered by new "-n" command-line option, will write test
313 patterns to the disk, but only after reading data off the
314 disk into memory. Then, comparing the test patterns gives
315 a result as to whether or not those sectors are reliable.
316 Finally, the original data is written back.
318 To streamline this operation, I added another option, "-c
319 blocks_at_once", which will give the number of disk blocks
320 to process at one time (mnemonic--"count"). I made this
321 default to 16 (as in the read-only testing mode), and also
322 affect the read-only testing mode. Of course, read-only
323 mode needs (count * block_size) amount of memory, and
324 non-destructive read-write needs 3 times that much, so it
325 makes sense to do the calculations and not overrun
326 available RAM...I would have liked to implement and
327 auto-memory-usage heuristic, but I have no idea if it's
328 even possible to determine the amount of free memory on a
329 Unix system except by reading /proc entries, and that
330 didn't seem portable. I did NOT make this blocks_at_once
331 affect the behavior of the test_rw routine, as it is
332 processing the whole disk at once, anyway.
334 I *think* that I got higher detection rates on my hard
335 drive using random test data than patterned test data, so
336 my non-destructive mode initializes its test data buffer
339 I fixed a typo in flush_bufs that caused the ioctl
340 BLKFLSBUF to never get compiled into the program.
342 Also, I added an "undocumented" (I didn't put it into the
343 usage message; you can if you think it's useful) "-h"
344 option to specify the host device to flush--useful if you
345 want to test out my "non-destructive" code on something
346 other than a hard drive, such as a file on a hard drive,
347 and want the host hard drive to flush.
349 I provided support for an "input" file (via option "-i",
350 similar to the "-o" option)...containing a list of
351 already-known bad blocks; it will skip testing those
352 blocks, thus adding speed to the bad block scan (on my
353 computer, hitting a physically bad block causes a
354 half-second-or-more freeze as the kernel waits for the
355 hard drive to give up and reset itself; pretty annoying
356 when you already know the block is bad from a previous
359 Finally, the real killer, the persistent re-scan (option:
360 "-p num_passes") that I created will, if desired,
361 persistently re-scan the drive until it has completed a
362 user-decidable number of passes in a row during which no
363 new bad blocks are found. On my drive, I would see
364 behavior that a certain percentage of bad blocks would be
365 found with each pass (it was not reliable in the defective
366 areas!), so I wanted it to check it over and over again
367 until it didn't find any more, several times. Perhaps
368 this will be useful to others. Defaults of course to
369 zero, meaning it will stop after the first pass. I used
370 "-p 2" on my drive, and it ran for 2 1/2 days...then used
371 "-p 3" a couple days later and it ran for a few more
372 hours, and since then the rest of my drive has been
375 Implementation of these last two features, "-i" and "-p",
376 I did using a bb_list from libext2fs. I debated whether
377 bad blocks input through "-i" should be output into the
378 "-o" file (or stdout, of course), and decided against it,
379 but left the code to do so in place, commented out, just
380 for your information.
382 In order to maintain data integrity upon interruption of a
383 non-destructive-write test, I created a signal handler
384 which I install which will write back whatever original
385 disk data is in the buffers upon any of the fatal signals
386 (except SIGKILL, of course).
388 Of course, ideally, the new options would be reflected in
389 the badblocks manual page, but I am not experienced at
390 manual page modification; if you decide my patch to
391 badblocks should be incorporated into the distribution, I
392 could learn how to update the manpage and other
393 documentation, or you could do it for me after exercising
394 your opinions, if you have any, on exactly what the
395 command-line parameters should be called and which ones
396 should be in the distribution."
398 2000-01-07 Theodore Ts'o <tytso@valinux.com>
400 * Really fix the bug where "fsck -As" will actually allow
401 interactive fsck's. (For those people who like to do
402 interactive fsck's in the /etc/rc scripts!?!)
404 1999-11-23 <tytso@valinux.com>
406 * tune2fs.8.in: Fix man page so that the sparse_super filesystem
407 option is properly named.
409 1999-11-22 <tytso@valinux.com>
411 * mke2fs.c: Change log2() and log10() to int_log2() and
412 int_log10() to avoid namespace collisions. Change #ifdef
413 sparc to #ifdef __sparc__.
415 1999-11-19 <tytso@valinux.com>
417 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
418 the source directory.
420 1999-11-10 <tytso@valinux.com>
422 * Release of E2fsprogs 1.18
424 1999-11-10 <tytso@valinux.com>
426 * mke2fs.8.in: Update manual page so that the sparse_option
427 filesystem option is properly named.
429 1999-11-04 <tytso@valinux.com>
431 * fsck.c (main): Move setting of the interactive flag to before
432 the call to check_all(), so that people who try to use
433 fsck -As can do so interactively.
435 1999-10-26 <tytso@valinux.com>
437 * Release of E2fsprogs 1.17
439 1999-10-26 <tytso@valinux.com>
441 * fsck.c (PRS, device_already_active): Add debugging hook; if the
442 environment variable FSCK_FORCE_ALL_PARALLEL is set, then
443 force all fsck runs to happen in parallel.
445 * get_device_by_label.c (has_right_label): Fixed bug where code
446 used a strncmp to compare a binary UUID value which may
447 contain a NULL. Fixed GCC warnings; added const to char *
448 typed variables. Eliminated non-portable use of u_char.
450 * mke2fs.c (PRS): Fix gcc warnings; add const to some char *
451 variables, including in struct mke2fs_defaults.
452 (set_fs_defaults): Changed parameter name to avoid
455 * fsck.c (wait_one): Fix gcc warnings; add #include for ctype.h,
456 add const to char * variables, and use NOARGS to declare
457 functions that take no arguments. Also fix a memory leak
458 in execute() where we weren't freeing argv[] after forking
461 * chattr.c: Add hack to compile in a definition for S_ISLNK so we
462 can successfully compile even with warnings turned on.
464 1999-10-25 <tytso@valinux.com>
466 * mke2fs.c (show_stats): Capitalized Hurd to make the GNU types
468 (PRS): Use __u64 instead of long long for portability
469 reasons. Also moved #include of sys/stat.h inside #ifdef
470 HAVE_LINUX_MAJOR_H for portability reasons.
472 * fsck.c (execute): Fix really stupid bug in the linked list
473 management which caused fsck in parallel mode to go into
476 1999-10-22 <tytso@valinux.com>
478 * Release of E2fsprogs 1.16
480 1999-10-22 <tytso@valinux.com>
482 * tune2fs.c (main): Add a new option -O which allows the user to
483 set and clear certain "safe" filsystem feature flags.
484 Currently, the only ones which are supported for
485 modification are sparse_superblock and filetype.
487 * mke2fs.c (PRS): Add new option -O which allows the user to
488 request filesystems with specific filesystem options. By
489 default on 2.2 and later systems, create filesystems that
490 have both file type information and sparse superblocks.
492 1999-10-21 <tytso@valinux.com>
494 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, e2label.8.in,
495 fsck.8.in, lsattr.1.in, mke2fs.8.in, mklost+found.8.in,
496 tune2fs.8.in, uuidgen.1.in: Update man page to use a more standard
497 format (bold option flags and italicized variables), as
498 suggested by Andreas Dilger (adilger@enel.ucalgary.ca)
500 1999-10-14 <tytso@valinux.com>
502 * tune2fs.c (main): Fix typo (double spaces) in messages regarding
503 changing the sparse superblock option
505 * fsck.c (wait_one): If the fsck process just started, wait a
506 second before sending a SIGUSR1, to give it a chance
507 to set the signal handler; otherwise, fsck will die on an
510 1999-09-15 <tytso@valinux.com>
512 * mke2fs.c (show_stats): Fix display bug when printing out the
513 number of superblocks. Suggested by Yann Dirson.
515 1999-09-08 <tytso@valinux.com>
517 * partinfo.c: Fix minor compilation bugs pointed out by Yann
520 * mke2fs.c: Don't turn on sparse superblocks by default on pre-2.2
523 * mke2fs.8.in: Add the possible valid block sizes for mke2fs.
524 Document the -n flag, and the new defaults for the -s
527 * dumpe2fs.c, dumpe2fs.8.in: Add new options -f (force) and -h
530 1999-08-13 <tytso@valinux.com>
532 * mke2fs.c (PRS): Fix logic for turning on/off the sparse
535 1999-07-18 Theodore Ts'o <tytso@valinux.com>
537 * Release of E2fsprogs 1.15
539 1999-07-18 <tytso@rsts-11.mit.edu>
541 * mke2fs.c (PRS, set_fs_defaults): Add new option -T which allows
542 the user to specify the how the filesystem is to be used.
543 Mke2fs now chooses the filesystem parameters automatically
544 based on the size of the filesystem and the intended use
545 of the filesystem. Add new option -n which simply goes
546 through the calculations to determine the parameters of
547 the filesystem the system would make.
549 1999-07-18 <tytso@valinux.com>
551 * fsck.c, fsck.h: Add support for new option -C. This option will
552 automatically manage e2fsck processes so that they will
553 print completion/progress bars. If multiple filesystems
554 are being checked, arrange to make sure that only one
555 e2fsck process is displaying a progress bar at a time.
557 1999-07-08 <tytso@valinux.com>
559 * badblocks.c (do_test): Don't complain if the write error occurs
560 on a non-block boundary. This is perfectly common when
561 using blocksizes larger than 1k.
563 1999-07-03 <tytso@valinux.com>
565 * uuidgen.c: Add option parsing so that user can ask for either a
566 time-based UUID or a random-based UUID.
568 1999-07-02 <tytso@valinux.com>
570 * fsck.c: Added support for LABEL= and UUID= specifications for
571 the filesystem's device, to match what recent mount
572 programs can support. Also, close stdin when doing fsck
573 -A or when checking more than one filesystem at a time, so
574 that e2fsck doesn't try to ask interactive questions if
575 the filesystem appears to be mounted.
577 * get_device_by_label.c: New file added to support LABEL=foo and
578 UUID=bar type specifications.
580 1999-07-01 <tytso@valinux.com>
582 * badblocks.c: Make the "done" string include enough spaces to
583 clear out a large block number.
585 1999-06-29 <tytso@valinux.com>
587 * mke2fs.c (check_mount): Allow a filesystem to be made even if it
588 appears mounted if the force option is given.
590 1999-06-24 <tytso@valinux.com>
592 * mke2fs.8.in: Fix typo in man page which caused the badblocks
593 command to not show up in the "SEE ALSO" section.
595 1999-05-02 <tytso@rsts-11.mit.edu>
597 * findsuper.c: Added documentation from aeb@cwi.nl; some minor
600 1999-05-20 <tytso@rsts-11.mit.edu>
602 * dumpe2fs.c, dumpe2fs.8.in: Added new command-line options which
603 allow a filesystem expert to specify the superblock and
604 blocksize when opening a filesystem. This is mainly
605 useful when examining the remains of a toasted filesystem.
607 1999-03-11 Andreas Dilger <adilger@enel.ucalgary.ca>
609 * uuidgen.c, uuidgen.1.in: Created command-line utility to
612 1999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
614 * fsck.c (fsck_device, execute): Don't dereference a null pointer
615 when checking a filesystem not in /etc/fstab.
617 1999-02-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
619 * fsck.c (fsck_device): Print an error message if the user passes
620 in a device or directory name which isn't found in /etc/fstab.
621 Allow the location of /etc/fstab to be overridden by
622 the FSTAB_FILE environment variable.
624 1999-01-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
626 * mke2fs.c (write_inode_tables): Add kludge code so that when the
627 MKE2FS_SYNC environment variable is set, mke2fs will sync
628 every MKE2FS_SYNC block groups, while it is writing out
629 the inode tables. This is to work around a VM bug in the
630 2.0 kernel. I've heard a report that a RAID user was able
631 to trigger it even using a 2.2 kernel.
633 1999-01-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
635 * fsck.c (execute, wait_one): Modified routines so that they
636 accurately create an fsck_instance even when the noexecute
637 flag is set. This allows for accurate debugging of the
639 (check_all): When the verbose flag is given twice, print
640 debugging information about when fsck is waiting for jobs
643 1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
645 * Release of E2fsprogs 1.14
647 1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
649 * fsck.8.in: Clarified and expanded the documentation for the -A
652 1999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
654 * fsck.c (load_fs_info): If the pass number field is missing, it
655 needs to be treated as zero.
657 1999-01-05 Theodore Ts'o <tytso@rsts-11.mit.edu>
659 * mke2fs.c (PRS): Allow the user to specify exactly how many
660 inodes he/she wishes.
662 * chattr.c, lsattr.c: Only print the version information for the
663 program if the -V option is given.
665 * chattr.c: Ignore symbolic links when doing a recursive descent
668 1999-01-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
670 * fsck.c (load_fs_info, parse_fstab_line): Ignore fstab lines
671 are commented out. Also allow blank lines in the
673 (execute): In verbose mode, print the mountpount of the
674 filesystem which we are checking (user request).
676 1998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
678 * mke2fs.c: Add definition of SCSI_BLK_MAJOR if not defined, for
679 compatibility with Linux 1.2.13 header files.
681 1998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
683 * Release of E2fsprogs 1.13
685 1998-12-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
687 * mke2fs.8.in: Fixed stupid typo ("Raid options are _comma_
688 seperated", instead of common separated)
690 1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
692 * Makefile.in: Updated dependencies.
694 1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
696 * fsck.c (load_fs_info): Parse /etc/fstab ourselves, instead of
697 relying on getmntent(). This has the advantage of
698 allowing us to properly handle missing pass numbers correctly.
700 1998-11-13 Theodore Ts'o <tytso@rsts-11.mit.edu>
702 * tune2fs.8.in: Fix minor display bug in the nroff.
704 * mke2fs.c (show_stats, write_inode_tables): Use the log10
705 function to calculate the display of block numbers so that
706 things look nice on an 80 character display.
708 1998-10-12 Theodore Ts'o <tytso@rsts-11.mit.edu>
710 * mke2fs.c (usage): Add the sparse-super-flag to the usage
713 1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
715 * Release of E2fsprogs 1.12
717 1998-07-04 Theodore Ts'o <tytso@rsts-11.mit.edu>
719 * findsuper.c (main): Print the block group number which is now
720 being written by e2fsprogs.
722 1998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
724 * fsck.c (ignore): Remove unused variable cp.
726 * chattr.c (fatal_error):
729 * dumpe2fs.c (usage):
730 * badblocks.c (usage): Remove volatile from declaration.
732 * fsck.c: Change use of strdup to be string_copy, since we don't
733 trust what glibc is doing with strdup. (Whatever it is,
736 1998-06-19 Theodore Ts'o <tytso@rsts-11.mit.edu>
738 * mke2fs.c (PRS): Add a -V option which prints the version number
741 1998-05-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
743 * fsck.c (ignore): Remove check for filesystems with the noauto
746 1998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
748 * Makefile.in: Change to use new installation directory variables
749 convention. Fix uninstall rules to take $(DESTDIR) into
750 account. Remove cat8dir and cat1dir from the installdirs
751 target, since modern man package don't necessarily put the
752 cat directory in /usr/man/cat?.
754 1998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
756 * e2label.8.in: New man page to document the e2label function.
758 * e2label.c: Fix -Wall warning by making functions static.
760 1998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
762 * chattr.1.in: Document that the append-only attribute may
763 only be set or cleared by the superuser.
765 * Update all manual pages to that the availability section is
768 * e2label.8.in, tune2fs.8.in: Update manual page to state that
769 labels must be no longer than 16 characters, or they will
772 * e2label.c (change_label), tune2fs.c (main): If the label is
773 longer than 16 characters, print a warning message stating
774 that the label will be truncated.
776 * mke2fs.c (PRS): If the user specifies a filesystem size, and
777 it's larger than the apparent size of the device, print a
778 warning message and ask if the user wants to proceed.
780 1998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
782 * mke2fs.c (check_plausibility): Fixed spelling typo in warning
783 message. Fixed up -Wall warnings in file.
785 Sun Mar 8 22:21:48 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
787 * partinfo.c (main): The ioctl BLKGETSIZE requires a long, not an
790 Sun Feb 1 16:53:36 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
792 * badblocks.8: Update documentation to note that output format
793 of badblocks is suitable for use with e2fsck -l or
796 * mke2fs.c (handle_bad_blocks): Fix bug so that all groups with
797 bad superblock backup blocks are printed (not just the
800 Mon Dec 1 17:01:04 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
802 * badblocks.8.in: Add documentation for the -s option.
804 Fri Oct 24 23:37:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
807 * chattr.c: Remove #include of getopt.h, since it's not needed.
811 * badblocks.c (main):
813 * mke2fs.c (PRS): Make the variable which getopt returns into be
814 an int, so that it won't lose on platforms where char is
817 Fri Oct 3 13:38:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
819 * mke2fs.c (parse_raid_opts): Make parse_raid_opts return a void,
820 to fix a -Wall warning.
822 Mon Sep 15 22:07:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
825 * mklost+found.c (main):
829 * badblocks.c (main): Declare main to return an int, as required.
830 Make sure main always ends with an exit(0). (Some
831 programs weren't doing this, and thus were returning a
834 Mon Jul 14 15:27:29 1997 Theodore Y. Ts'o <tytso@mit.edu>
836 * e2label.c: New file contributed by Andries Brouwer which
837 provides an easy-to-use interface to modify the filesystem
840 * Makefile.in (SPROGS): Add Makefile support to build e2label
842 Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
844 * Release of E2fsprogs 1.11
846 Mon Jun 16 23:37:54 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
848 * mke2fs.c (show_stats): Adjust the number of columns printed when
849 displaying the superblock backups to avoid running over
850 80 columns when making a really big disk.
852 Thu May 8 22:22:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
854 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, fsck.8.in,
855 mke2fs.8.in, tune2fs.8.in: Fix minor typos and grammer
856 oops found by Bill Hawes (whawes@star.net).
858 * mke2fs.c (test_disk): Pass the blocksize to the bad blocks
859 command so that all of the filesystem gets tested in the
860 case where the blocksize 2048 or 4096.
862 Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
864 * Release of E2fsprogs version 1.10
866 Thu Apr 24 09:52:47 1997 Theodre Ts'o <tytso@localhost.mit.edu>
868 * mke2fs.c: Added new option -R, which specifies RAID options.
869 Currently the only supported RAID option is "stride" which
870 specifies the stripe width in RAID filesystem. This is
871 used to aid in the placement of the inode and block
874 * mke2fs.8.in, tune2fs.8.in: Added warnings that the sparse
875 superblock option isn't yet supported by most kernels.
877 Wed Apr 23 22:42:51 1997 Theodre Ts'o <tytso@localhost.mit.edu>
879 * mke2fs.c (PRS): Make the default filesystem revision be 0, not
880 1. (Since some people are still worried about 1.2.13
883 Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
885 * Release of E2fsprogs version 1.09
887 Fri Apr 11 18:57:24 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
889 * chattr.1.in: Updated man page so that the 'A' attribute is
890 specified everywhere.
892 * chattr.c (usage): Added usage message for the 'A' attribute.
894 Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
896 * Release of E2fsprogs version 1.08
898 Thu Apr 10 07:08:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
900 * dumpe2fs.c (list_desc): List the offsets of the inode and block
901 bitmaps, and the inode table. List the block boundaries
904 Sat Apr 5 11:55:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
906 * tune2fs.c (main): Implement the -s flag allows the user to
907 set and reset the sparse superblock flag.
909 * mke2fs.c (PRS): By default generate DYNAMIC revision
910 filesystems. The -s flag controls whether or not the
911 sparse superblock flag is set.
912 (PRS): Change to allow the user to specify the true
913 maximum number of blocks per group to reflect the
916 Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
918 * Release of E2fsprogs version 1.07
920 Thu Mar 6 17:15:05 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
922 * mke2fs.c (create_root_dir): Set the root directory's i_uid and
923 i_gid to be the real user and group id.
925 Tue Mar 4 10:14:33 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
927 * mke2fs.c (check_plausibility): Add more intelligent error
928 messages when the device doesn't exist.
930 Sat Mar 1 10:43:32 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
932 * fsck.c (main): Fix bug where the PATH environment variable isn't
933 set when it is unset.
935 Tue Jan 14 12:30:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
937 * mke2fs.c (write_inode_tables): Fixed bug in write_inode_tables
938 where a loop variable was getting reused in a nested loop.
939 This caused the inode table to not be correctly
942 Thu Jan 2 00:00:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
944 * lsattr.c, chattr.c: Include string.h, since we use memcpy().
946 * findsuper.c: Use time_t for ctime(), not __u32.
948 Sat Dec 28 23:39:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
950 * badblocks.c: Adapted -vv modifications from Rik Faith so that
951 they frequently update the block number field.
953 * badblocks.8.in: Document the optional start-block parameter
955 Mon Oct 14 11:52:58 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
957 * mke2fs.c: Updated to use new ext2fs_allocate_tables() function.
959 Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
961 * Release of E2fsprogs version 1.06
963 Mon Oct 7 00:56:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
965 * chattr.1.in: Documented the 'A' (noatime) attribute.
967 * dumpe2fs.c (main): Change EXT2_SWAP to EXT2_FLAG_SWAP for
970 Sun Sep 22 16:18:47 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
972 * chattr.c (decode_arg): Add support for the 'A' (noatime) flag.
974 Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
976 * Release of E2fsprogs version 1.05
978 Sat Sep 7 07:34:11 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
980 * tune2fs.c (main): Add support for new option -C, which sets the
981 current number of mounts.
982 (main): Allow the interval to be specified in seconds,
983 mostly for debugging.
985 Tue Aug 27 17:27:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
987 * Makefile.in (SMANPAGES): Use @FSCK_MAN@ instead of fsck.8.
988 (SPROGS): Use @FSCK_PROG@ instead of fsck.
990 Thu Aug 22 00:51:44 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
992 * mke2fs.c (zap_bootblock): Don't do zap_bootblock on a
995 Tue Aug 20 00:15:46 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
997 * chattr.c (main): Fixed bug so that chattr -v works. (Bug report
998 and fix sent by Charles Howes, chowes@eznet.ca)
1000 Fri Aug 9 11:52:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1003 * tune2fs.c: Added support for the -L option which sets the volume
1004 label, the -M option which sets the last mounted
1005 directory, and the -U option which sets the filesystem UUID.
1008 * mke2fs.c: Added support for the -o option, which overrides the
1009 creator OS. Generate a UUID for the filesystem, if
1010 applicable. Added support for the -L option which sets
1011 the volume label, and the -M option which sets the last
1014 Sat Jun 22 17:43:17 1996 Remy Card <card@bbj.linux.eu.org>
1016 * chattr.c (decode_arg): Integrated Michael Nonweiler's fix to
1017 avoid a segmentation fault when the "-v" option is used
1018 and no version number is specified.
1020 Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1022 * Release of E2fsprogs version 1.04
1024 Wed May 15 21:15:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1026 * Makefile.in (fsck): fsck doesn't need to be linked with the ext2
1029 Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1031 * Release of E2fsprogs version 1.03
1033 Thu Mar 7 03:43:20 1996 <tytso@rsts-11.mit.edu>
1035 * mke2fs.c (PRS): Add (for development only) support to
1036 specify revision and inode size of the new filesystem.
1038 Tue Mar 5 03:51:35 1996 <tytso@rsts-11.mit.edu>
1040 * mke2fs.8.in: Fix a few minor typo's in the man page.
1042 * mke2fs.c (reserve_inodes): Add support for dynamic first inode
1045 Mon Feb 5 22:19:49 1996 <tytso@rsts-11.mit.edu>
1047 * fsck.c (check_all, PRS): Added new flag -P, which turns on the
1048 parallel root option. This allows you to check the root
1049 filesystem in parallel with the other filesystems. Note
1050 that this is not the safest thing in the world to do,
1051 since if the root filesystem is in doubt things like
1052 the e2fsck executable might be corrupted! But some
1053 sysadmins, who don't want to repartition the root
1054 filesystem to be small and compact, may really want this
1057 Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1059 * Release of E2fsprogs version 1.02
1061 Tue Oct 30 21:14:12 1995 <tytso@rsts-11.mit.edu>
1063 * mke2fs.c (check_plausibility): Add check to warn user if they
1064 are trying to mke2fs the whole disk. (/dev/hda
1067 Fri Dec 15 19:09:56 1995 <tytso@rsts-11.mit.edu>
1069 * fsck.c (check_all): If we break out of the loop because we are
1070 serializing and have just started at fsck we haven't
1071 finished the pass. We need to go round again in case there
1072 are more filesystems to be done in this pass. (Patch
1073 submitted by Mike Jagdis)
1075 Sat Dec 9 10:07:16 1995 <tytso@rsts-11.mit.edu>
1077 * dumpe2fs.c (in_use): test_bit() was renamed to
1080 Mon Oct 30 20:21:18 1995 <tytso@rsts-11.mit.edu>
1082 * fsck.c (fsck_device): Check fstype instead of type; this was a
1083 stupid typo which caused coredumps in some cases.
1085 Thu Oct 26 12:05:18 1995 <tytso@rsts-11.mit.edu>
1087 * Makefile.in (install): Strip programs when they are installed.
1089 Fri Aug 18 15:10:40 1995 Theodore Y. Ts'o <tytso@dcl>
1091 * mke2fs.c (PRS): Move call of check_mount() from main() to PRS(),
1092 so we do the check to see if the filesystem is mounted
1093 *before* we try to determine the size of the device.
1095 Wed Sep 6 23:34:07 1995 Remy Card <card@bbj>
1097 * fsck.c (load_fs_info): Load the informations from /etc/fstab in
1100 Thu Aug 17 22:33:09 1995 <tytso@rsts-11.mit.edu>
1102 * mke2fs.c (check_mount): Use the new ext2fs_check_if_mounted()
1103 function to determine if the device is mounted.
1105 * mke2fs.c (PRS): Change call to use the new
1106 ext2fs_get_device_size() function in order to determine
1107 the size of the filesystem. Remove get_size() and
1108 is_valid_offset(), which are no longer called.
1110 Fri Aug 11 08:26:24 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1112 * fsck.c (fsck_device): Make sure fstype has been set by the user
1113 and that it does not begin with "no" and the user has
1114 specified exactly one type before using it as the type to
1117 Fri Aug 11 14:17:18 1995 Remy Card <card@bbj>
1126 * tune2fs.8: Updated date and version number.
1128 Thu Aug 10 14:18:36 1995 Remy Card <card@bbj>
1130 * tune2fs.c: Fixed a bug which prevented the use of user and group
1131 names with the -g and -u options. Thanks to Jean Christophe
1132 ANDRE <progfou@mycrob.cafard.freenix.fr>.
1135 * tune2fs.8: Fixed a spelling error in Ted's name :-)
1137 Wed Aug 9 20:41:54 1995 Theodore Y. Ts'o <tytso@dcl>
1139 * mke2fs.c (count_blocks): Divide the size by
1140 EXT2_BLOCK_SIZE(¶m), instead of assuming that the
1141 blocksize is always 1024 bytes.
1143 Sat Aug 5 12:00:51 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1145 * mke2fs.c (PRS): Use malloc() instead of alloca() --- alloca() is
1146 not portable!! In any case putenv() in some systems must
1147 take a static character array or malloc()'ed memory;
1148 passing memory allocated using alloca() to putenv() is not
1151 * chattr.c (chattr_dir_proc):
1152 * lsattr.c (lsattr_dir_proc): Use malloc() instead of alloca() ---
1153 alloca is not portable!
1155 * fsck.c (fsck_device): If the filesystem type is specified by the
1156 user using the -t option, let it override the type in
1159 * fsck.c (strdup): Don't build strdup() if the system defines it.
1161 Mon Jun 12 19:15:10 1995 Theodore Y. Ts'o (tytso@dcl)
1163 * chattr.c, lsattr.c: Include <sys/types.h> for <dirent.h>'s
1166 * The $(UPROGS) go in bin, not sbin.
1168 * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c,
1169 tune2fs.c: Don't include <getopt.h> if it doesn't exist.
1171 Mon Jun 12 16:36:04 1995 Theodore Y. Ts'o <tytso@dcl>
1173 * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c,
1174 tune2fs.c: Only include getopt.h if HAVE_GETOPT_H is defined.
1176 Sat Jun 10 23:37:09 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1178 * chattr.c: Include errno.h, since we use errno
1180 * fsck.c (load_fs_info): If HAVE_MNTENT_H is not defined,
1181 explicitly initialize filesys_info to be NULL.
1183 * mke2fs.c: Include the stdio.h and errno.h header files
1185 Thu Jun 8 13:25:23 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1187 * mke2fs.c: Only include <linux/fs.h> if we can.
1188 (get_size): Don't try to use the BLKGETSIZE ioctl unless it's defined.
1189 (check_mount): Only check to see if the device is mounted if
1190 HAVE_MNTENT_H is defined (by configure).
1192 * fsck.c (load_fs_info): Only try to get info about filesystems if
1193 HAVE_MNTENT_H is defined (by configure).
1194 (main): Allocate space for a new fsck_path instead of append to a
1195 statically sized buffer.
1196 (PRS): Use alloca to allocate the new path string, instead of
1197 having a fixed size buffer (which was the wrong size anyway).
1199 * chattr.c (chattr_dir_proc): Use alloca to allocate space for a
1200 filename instead of using a fixed-size buffer.
1201 * lsattr.c (lsattr_dir_proc): Ditto.
1202 * mklost+fond.c (main): Calculate the actual needed size for the
1203 path buffer instead of using MAXPATHLEN (which not all systems have).
1205 * badblocks.c: Only include linux include files if we have them.
1206 (flush_bufs): New function to flush a block device, optionally
1207 syncing it first. This replaces other copies of this code.
1208 (test_ro): Replace calls to ioctl with flush_bufs().
1211 * Makefile.in: Rewritten to conform to GNU coding standards and
1212 support separate compilation directories.
1214 Sat Mar 11 10:59:58 1995 Theodore Y. Ts'o <tytso@localhost>
1216 * mke2fs.c (main, zap_bootblock): Added new function
1217 zap_bootblock() which clears the first 512 bytes of the
1218 filesystem. This protects the filesystem from being
1219 misidentified as a MS-DOS FAT filesystem.
1221 * badblocks.c (alarm_intr, test_ro, test_rw): Increase the space
1222 allocated for printing the block numbers, so that the
1223 display doesn't get corrupted when running badblocks on a
1224 very large partition.
1226 * badblocks.c (do_test, test_ro, test_rw): Added missing cast to
1227 ext2_loff_t, so that when checking a large device,
1228 spurious seek errors aren't reported.
1230 * mke2fs.c (count_blocks): Declare mid to be of type ext2_loff_t
1231 instead of type int, so that it works for filesystems
1232 greater than 2 GB. (Fortunately count_blocks is only
1233 called if the device does not support the BLKGETSIZE
1234 ioctl, which most do.)
1236 * fsck.c (ignore): Add check to ignore filesystems with a pass
1237 number of zero. (This check was accidentally deleted at
1238 during 0.5b development.)
1240 Sat Dec 31 00:47:16 1994 <tytso@rsx-11.mit.edu>
1242 * mke2fs.c (new_table_block, alloc_tables, PRS, main): Add a new
1243 option, -S, which only writes the superblock and group
1244 descriptors. Useful for recovering when all of the
1245 superblocks are corrupted somehow (as a last ditch
1248 Also, don't bother initializing the bitmap blocks in
1249 alloc_tables(), since they will be overwritten at the end
1250 anyway. (Should speed up mke2fs by a little.)
1252 Tue Dec 6 02:20:55 1994 <tytso@rsx-11.mit.edu>
1254 * fsck.c (main): Fix stupid typo where a null inst would be freed.
1256 * fsck.c (wait_one): Check WIFEXITED on status before trying to
1257 extract the exit status. In other cases, return
1258 FSCK_ERROR if the back end processor exited with a signal.
1260 Tue Nov 15 10:20:00 1994 Remy Card <card@bbj>
1262 * tune2fs.c (main): Fixed a bug which prevented the use of the
1264 Added the `w' (week) suffix recognition in the check interval.
1266 Sun Nov 13 15:58:48 1994 (tytso@rsx-11)
1268 * fsck.c (load_fs_info): If the user has an obviously old
1269 /etc/fstab file, issue a warning message and assume that
1270 all partitions should be checked.
1272 Sat Nov 12 00:33:18 1994 (tytso@rsx-11)
1274 * dumpe2fs.c (list_desc): Update to new inode and block bitmap
1277 * mke2fs.c (create_root_dir): Create the root directory owned by
1280 Mon Nov 7 22:04:37 1994 Remy Card <card@bbj>
1282 * tune2fs.c (main.c): Added support for new options:
1283 -r reserved_blocks_count, -g reserved_gid, -u reserved_uid.
1285 Sun Aug 21 00:57:33 1994 Theodore Y. Ts'o (tytso@rt-11)
1287 * fsck.c (ignore): If the pass number is 0, ignore the filesystem.
1289 Wed Aug 17 21:55:03 1994 Remy Card (card@bbj)
1291 * badblocks.c (test_rw): Added verbose output like in the
1294 (do_test and test_rw): Use the llseek system call if available.
1296 * chattr.c: Added support for new attributes.
1298 * lsattr.c: Added support for long format.
1300 * mke2fs.c (usage): Fixed bogus usage message.
1302 (valid_offset): Use the llseek system call if available.
1304 Wed Aug 17 10:50:57 1994 Theodore Y. Ts'o (tytso@rt-11)
1306 * mke2fs.c (handle_bad_blocks): Check to see if a bad block is
1307 where a backup superblock/group descriptor is stored. If so,
1308 print a warning message and adjust the superblock counts so that
1309 they are correct. (Otherwise, the bad block will get counted
1310 twice and the # of free blocks count will be wrong.)
1312 (alloc_tables): Removed code which calcualated the free block
1313 statistics, which was moved to lib/ext2fs/initialize.c. This
1314 allows the bad block code to adjust the group descriptor
1315 statistics if necessary.