blob: e018e2baa23135d326d021e3160131dcd748edec [file] [log] [blame]
Theodore Ts'o1d08d9b2001-04-17 01:01:49 +000012001-04-16 Theodore Tso <tytso@valinux.com>
2
Theodore Ts'od6a27e02001-04-17 02:34:41 +00003 * util.c (parse_journal_opts): Remove code which allowed a bare
4 number to be treated as a journal size.
5
Theodore Ts'o1d08d9b2001-04-17 01:01:49 +00006 * mke2fs.c, tune2fs.c: Add newlines to error messages so that they
7 look nicer.
8
Theodore Ts'od6a27e02001-04-17 02:34:41 +00009 * mke2fs.c (create_journal_dev): Call
10 ext2fs_create_journal_superblock() first, so if it's going
11 to error out, the user finds out before waiting for the
12 entire device to get zero'ed.
13
Theodore Ts'o2537b6d2001-03-26 20:07:13 +0000142001-03-26 Theodore Tso <tytso@valinux.com>
15
16 * mke2fs.8.in, tune2fs.8.in: Change man paegs to document that the
17 journal must be bewteen 1024 and 10,240 file system
18 blocks.
19
20 * mke2fs.c, tune2fs.c: Change to use figure_journal_size()
21
22 * util.c, util.h (figure_journal_size): Change
23 journal_default_size into routine which also converts the
24 requested journal size into filesystem blocks and does
25 bounds checking to make sure the journal is sized
26 reasonably. Renamed function to journal_default_size.
27 (parse_journal_opts): Remove bounds check for the journal
28 size, since this is now done in figure_journal_size, and
29 based on the number of filesystem blocks, as opposed to
30 using the absolute size of the journal.
31
Theodore Ts'o93345d12001-02-17 06:09:50 +0000322001-02-17 Theodore Tso <tytso@valinux.com>
33
34 * mke2fs.c (main): Flush out the "creating journal" message.
35 Also handle the case where the default journal size
36 returns zero blocks == no journal. Print out how often
37 the filesystem will be checked.
38
Theodore Ts'oc5423c52001-02-08 05:45:17 +0000392001-02-08 Theodore Tso <tytso@valinux.com>
40
41 * e2image.c (main): Add code to write the e2image header.
42
Theodore Ts'offf18b42001-02-08 03:06:43 +0000432001-02-07 Theodore Tso <tytso@valinux.com>
44
Theodore Ts'obe4244b2001-02-08 03:28:18 +000045 * tune2fs.8.in: Update man page to reflect that 2.0.39 supports
46 sparse_super.
47
Theodore Ts'o8b164f92001-02-08 03:24:18 +000048 * dumpe2fs.c (list_desc): Fix fencepost error when calculating the
49 range of inode table blocks. Add '0x' to values printed
50 in hex.
51
Theodore Ts'offf18b42001-02-08 03:06:43 +000052 * chattr.c, lsattr.c: Define the _LARGEFILE64_SOURCE to force the
53 use of the LFS so that lstat will work on large files.
54
Theodore Ts'o02088862001-01-18 01:44:19 +0000552001-01-17 Theodore Ts'o <tytso@valinux.com>
56
Theodore Ts'odc2ec522001-01-18 01:51:15 +000057 * tune2fs.c, mke2fs.c, tune2fs.8.in, mke2fs.8.in: Change user
58 interface so that -J is used to specify journal options,
59 and -j is used to request creation of a journal using
60 default values. (This is a UI change, but we haven't done
61 a formal release, and it makes things much more consistent
62 with the rest of the options out there.)
63
64 * tune2fs.c: Add support for removing a filesystem from an
65 external journal; we correctly remove the filesystem UUID
66 from the external journal's filesystem list.
67
Theodore Ts'o5683e6e2001-01-18 01:47:48 +000068 * util.h, util.c (journal_default_size): New function from Andreas
69 Dilger to calculate an appropriate default journal size
70 given a filesystem size.
71
72 * util.c (parse_journal_opts): Allow the creation of a journal as
73 small as 1MB.
74
Theodore Ts'o02088862001-01-18 01:44:19 +000075 * dumpe2fs.c (print_journal_information): Use s_first_data_block
76 to find the correct block to read the journal superblock.
77
Theodore Ts'o16ed5b32001-01-16 07:47:31 +0000782001-01-15 Theodore Ts'o <tytso@valinux.com>
79
80 * tune2fs.c: Changed the external journal code so that it simply
81 adds a filesystem to a journal; the journal must have bene
82 created via "mke2fs -O journal_dev /dev/XXX".
83
84 * mke2fs.c: Add support for creating an external journal device by
85 using the command "mke2fs -O journal_dev /dev/XXX". Also
86 changed the external journal code so -j device=/dev/XXX it
87 simply adds a filesystem to that journal; the journal must
88 have been created via separate step.
89
90 * dumpe2fs.c (print_journal_information): Add support for dumping
91 information about an external journal device.
92
Theodore Ts'o4055ef72001-01-14 16:11:14 +0000932001-01-14 Theodore Ts'o <tytso@valinux.com>
94
Theodore Ts'o44c09c02001-01-14 17:02:09 +000095 * mke2fs.c: Add new filesystem types, largefile and largefile4,
96 for those filesystems whose average inode size is 1MB and
97 4MB, respectively. Allow the inode ratio specified to be
98 has high as 4MB. Make the s_max_mount_count vary between
99 20 and 40, to avoid needing to check all of the
100 filesystems at the same time. Add some random jitter to
101 the s_max_mount_count value so that we avoid checking all
102 of the filesystems at the same time when we reboot.
103
Theodore Ts'o08dd8302001-01-14 16:25:58 +0000104 * tune2fs.8.in: Add description of the -j option.
105
Theodore Ts'o4055ef72001-01-14 16:11:14 +0000106 * tune2fs.c (add_journal): Minor fixes from Andreas Dilger. Flush
107 stdout after printing in-progress message.
108 (main): Exit with status code 1 if we failed to determine
109 the mount status of the device.
110
Theodore Ts'odfcdc322001-01-11 15:38:00 +00001112001-01-11 <tytso@snap.thunk.org>
112
Theodore Ts'oc8c071a2001-01-11 16:08:23 +0000113 * e2image.c, mke2fs.c, mklost+found.c, tune2fs.c, util.c,
114 uuidgen.c: Fix gcc -Wall complaints, including one bug in
115 tune2fs caused by a block automatic shadowing version of
116 the variable we really wanted to use, which broke the
117 logic testing to see if the filesystem was mounted.
118
Theodore Ts'o4d404542001-01-11 16:04:59 +0000119 * badblocks.c (flush_bufs): Use ext2fs_sync_device() to sync and
120 flush the device.
121
Theodore Ts'odfcdc322001-01-11 15:38:00 +0000122 * mke2fs.c: Change ino_t to ext2_ino_t.
123
Theodore Ts'o83238152001-01-09 00:16:26 +00001242001-01-08 <tytso@snap.thunk.org>
125
126 * Makefile.in, tune2fs.c: Move e2label functionality into tune2fs,
127 using argv[0] as a dispatch. This allows e2label to be
128 (more) safely used on mounted filesystems.
129
Theodore Ts'o8820c792001-01-06 04:20:03 +00001302001-01-05 <tytso@snap.thunk.org>
131
132 * get_device_by_label.h (get_volume_label_by_spec): Add function
133 prototype.
134
135 * get_device_by_label.c: Use string_copy() instead of strdup() for
136 portability's sake. Fix a few other gcc -Wall
137 complaints.
138
139 * fsck.c (string_copy): Export string_copy() extern.
140
141 * badblocks.c: Fix various gcc -Wall complaints, including
142 an incorrect reference to sync in flush_bufs().
143
Theodore Ts'o63985322001-01-03 17:02:13 +00001442001-01-03 <tytso@snap.thunk.org>
145
146 * tune2fs.c (update_feature_set, add_journal): Moved to separate
147 functions. Added ability to add and remove the journal
148 while the filesystem is live. Added support for setting
149 a time-based UUID. Removed zero-initialized static variables.
150
151 * mke2fs.c, util.c, util.h (strcasecmp, proceed_question,
152 check_plausibility, parse_journal_opts, check_mount):
153 Moved functions to util.c so they can be used by tune2fs.
154
155 * mke2fs.c (main): Change ext2fs_add_journal_fs() to
156 ext2fs_add_journal_inode() to reflect function renaming.
157
Theodore Ts'ob21e38a2001-01-01 15:26:58 +00001582001-01-01 <tytso@snap.thunk.org>
159
Theodore Ts'oef9abe52001-01-01 15:31:53 +0000160 * mke2fs.c, e2image.c: Removed references to struct ext2fs_sb to
161 struct ext2_super_block.
162
Theodore Ts'ob21e38a2001-01-01 15:26:58 +0000163 * tune2fs.c (main): Add support to allow HAS_JOURNAL flag to be
164 cleared, but only if the filesystem is unmounted or
165 mounted read-only. Changed struct ext2fs_sb to struct
Theodore Ts'oef9abe52001-01-01 15:31:53 +0000166 ext2_super_block, and cleaned up old code which was needed
167 for old versions of ext2_fs.h (not needed since we're
168 using our own version now).
Theodore Ts'ob21e38a2001-01-01 15:26:58 +0000169
Theodore Ts'o9a718842000-12-31 13:48:12 +00001702000-12-31 <tytso@snap.thunk.org>
171
Theodore Ts'od4cf2fc2000-12-31 14:09:38 +0000172 * fsck.c (check_all): Call interpet_device to resolve LABEL= and
173 UUID= right away so that the device_already_active() logic
174 can do the right thing. Also cleaned up the the root
175 filesystem logic checking code; fixed up a logic bug with
176 the parallel_root option.
177
Theodore Ts'of10748d2000-12-31 13:55:14 +0000178 * lsattr.1.in: Add pointer to chattr man page for definition of
179 the file attributes.
180
181 * lsattr.c (list_attributes): Minor cleanup to smooth out logic
182 flow. Also removed static initialized variables to zero.
183
Theodore Ts'o9a718842000-12-31 13:48:12 +0000184 * chattr.c (decode_arg, get_flag): Use a table-driven method for
185 decoding the ext2 file flags character options. Add
186 support for the journaled data flag.
187
188 * chattr.1.in: Document the -j/+j/=j flag.
189
Theodore Ts'o16ad3332000-12-31 03:21:56 +00001902000-12-30 <tytso@snap.thunk.org>
191
192 * mke2fs.8.in: Minor clarity edit.
193
194 * mke2fs.c (usage): Document the -j option.
195 (main): Print the number blocks used in the journal.
196
Theodore Ts'ob9fd8c12000-12-29 03:10:45 +00001972000-12-28 <tytso@snap.thunk.org>
198
199 * base_device.c (base_device): Add support for DAC960 device
200 names.
201
202 * fsck.c (device_already_active): Handle the case where
203 base_device doesn't know how to interpret the device name,
204 instead of core dumping.
205
Theodore Ts'o74a74d22000-12-09 14:33:29 +00002062000-12-09 <tytso@snap.thunk.org>
207
Theodore Ts'od48755e2000-12-09 14:36:04 +0000208 * mke2fs.c (main, parse_journal_opts): Add support for creating V1
209 superblocks. We now pass in a journal_flags field to the
210 journal creation routines for this purpose.
211
212 * mke2fs.c: Remove zero initializers to save a few bytes from the
213 executable image. (Are we excited yet?)
214
Theodore Ts'o74a74d22000-12-09 14:33:29 +0000215 * findsuper.c: And non-subtle copyright licensing restriction to
216 get Yann to remove this program from the Debian package. :-)
217
Theodore Ts'o793e27d2000-12-03 06:33:56 +00002182000-12-03 <tytso@snap.thunk.org>
219
220 * fsck.c (device_already_active): Change to use new version of
221 base_device() which now returns dynamically allocated
222 memory.
223
224 * base_device.c (base_device): New version moved from fsck.c which
225 now understands ugly devfs names. (Debian bug #65181)
226
227 * base_device.tst: Test case for base_device.c
228
Theodore Ts'oe1c6b2f2000-12-02 06:19:33 +00002292000-12-02 <tytso@snap.thunk.org>
230
Theodore Ts'o2d091792000-12-02 07:03:32 +0000231 * fsck.8.in: Add clarification that filesystems with a fs_passno
232 of 0 are skipped with the -A option. (Debian wishlist/bug
233 #63442)
234
Theodore Ts'oe9f9dd82000-12-02 06:35:07 +0000235 * fsck.c (wait_one): When we let a new fsck take control of the
236 console to display the progress bar, set FLAG_PROGRESS to
237 so that fsck knows not to start new processes during an
238 fsck pass with the progress bar. (Should fix debian bug
239 #65267)
240
Theodore Ts'oe1c6b2f2000-12-02 06:19:33 +0000241 * tune2fs.8.in: Add clarifying statement about converting user and
242 group names to uid's before storing them in the
243 superblock. (Debian bug #67446)
244
Theodore Ts'o8ddaa662000-11-17 04:55:24 +00002452000-11-16 Theodore Ts'o <tytso@valinux.com>
246
247 * mke2fs.c(main): Expand the -j option so that it parses
248 option=argument style options, and add support for
249 creating filesystems with external journals.
250
251 * mke2fs.8.in: Document new syntax for the -j option.
252
Theodore Ts'o72ed1262000-11-12 19:32:20 +00002532000-11-05 <tytso@snap.thunk.org>
254
255 * e2image.c, Makefile.in: New program which saves ext2 metadata to
256 a file for people who need a last-ditch saving throw.
257
Theodore Ts'o85ef4ae2000-10-24 19:33:45 +00002582000-10-24 <tytso@snap.thunk.org>
259
Theodore Ts'of6f65832000-10-25 03:01:37 +0000260 * mke2fs.c (PRS): Applied Andreas Dilger's patch to make the -r -s
261 handling a bit more sane. (Even though -s is deprecated
262 at this point.)
263
Theodore Ts'o0056be12000-10-25 02:24:33 +0000264 * get_device_by_label.c: Apply fix from Erik Troan to support 16
265 character labels.
266
Theodore Ts'o43819662000-10-25 02:06:09 +0000267 * fsck.c (device_already_active): Add a special case check for MD
268 devices, so we don't try to check them in parallel with
269 other devices.
270
Theodore Ts'o85ef4ae2000-10-24 19:33:45 +0000271 * mke2fs.c (PRS, main), mke2fs.8.in: Add support for the -j
272 option, which builds an ext2/3 filesystem with an ext3
273 journal.
274
Theodore Ts'oe294cf22000-10-24 18:41:44 +00002752000-10-24 <tytso@valinux.com>
276
277 * mke2fs.c (zap_sector): Fix really stupid typo which gcc 2.95
278 didn't catch.
279
Theodore Ts'o3f1e9a52000-09-12 21:21:52 +00002802000-09-12 <tytso@valinux.com>
281
282 * fsck.c: Add base device definitions for hd[e-h], for those
283 systems with four IDE interfaces.
284
Theodore Ts'od7e39b02000-09-11 17:01:35 +00002852000-09-11 <tytso@valinux.com>
286
287 * mke2fs.c (zap_sector): Fix error message printed when zap_sector
288 fails.
289
290 * dumpe2fs.c (list_desc): Fixed format string bug when printing
291 the inode table location in non-hex format.
292
Theodore Ts'o556ccbd2000-08-20 19:11:05 +00002932000-08-20 <tytso@valinux.com>
294
295 * get_device_by_label.c: Add call to ext2fs_find_block_device if
296 we can't find the device using the name given by
297 /proc/partitions. (This can happen if devfs is compiled
298 into the kernel, but not mounted.)
299
Theodore Ts'o80c22c92000-08-14 15:32:11 +00003002000-06-27 Andreas Dilger <adilger@turbolabs.com>
301
302 * dumpe2fs.c (usage): add fhx options to usage message, add -x option
303 to print out the per-group block numbers in hex, add line for
304 location of primary/backup superblock and group descriptors
305
306 * mke2fs.c: rename max to group_blk_max avoid potential macro conflict
307
Theodore Ts'oe41784e2000-08-14 14:44:15 +00003082000-08-14 <tytso@valinux.com>
309
310 * mke2fs.c (zap_sector): Change zap_bootsect to more general
311 zap_sect.
312 (main): Clear the superblock when starting mke2fs, to
313 avoid leaving the filesystem in an inconsistent state.
314
Theodore Ts'o28412de2000-07-27 02:45:55 +00003152000-07-26 <tytso@valinux.com>
316
317 * get_device_by_label.c: Improve /proc/partitions parsing in
318 fsck, and speed up fsck -a.
319
Theodore Ts'of9e67062000-07-13 23:25:54 +00003202000-07-13 <tytso@valinux.com>
321
322 * Release of E2fsprogs 1.19
323
Theodore Ts'oa551b782000-07-13 22:05:31 +00003242000-07-13 <tytso@snap.thunk.org>
325
326 * badblocks.8.in: Added text explaining that the -n and -w options
327 are mutually exclusive.
328
329 * badblocks.c (usage): Fix usage message to make it clear that the
330 block count must be specified if the starting block is to
331 be specified. (The starting block should be a option, in
332 the long run.)
333
334 * badblocks.c (test_nd): Save and restore the currently_testing
335 variable before going into the write verification loop.
336 This avoids a loop termination problem if the last block
337 on the disk is bad. Also, turn off the SIGALRM signal
338 while restoring blocks after the user types ^C. The
339 num_saved variable is now static so that it won't get
340 clobbered by a longjmp. buf_used and bb_count are no
341 longer static, since they aren't used by the cleanup
342 routines anymore.
343
344 * badblocks.c (main): Removed an unsued varaible (buf_size).
345 Fixed bad getopt argument that didn't allow the 'b' option
346 to take an argument. Added error checking when parsing
347 the starting block number. Fixed lint warning in fscanf
348 format string.
349
Theodore Ts'o35964b52000-07-06 13:19:43 +00003502000-07-06 Theodore Ts'o <tytso@valinux.com>
351
Theodore Ts'o19c68912000-07-07 03:25:13 +0000352 * fsck.c (execute, wait_one): Treat fsck.ext3 the same as
353 fsck.ext2 (because they are the same) for the purposes of
354 the progress bar display logic.
355
Theodore Ts'o45d9e2f2000-07-07 03:12:54 +0000356 * tune2fs.8.in: Update manual page to document what happens if
357 max_mount_count is negative.
358
359 * tune2fs.c (main): Allow setting the maximal count value to be
360 negative, since the kernel interprets that as forcing a
361 check.
362
Theodore Ts'o5b1519b2000-07-06 14:16:08 +0000363 * fsck.c (lookup, load_fs_info, check_all): Use lazy evaluation
364 for calling interpret_device(), since this requires root
365 privileges if the partitions need to be scanned.
366 Otherwise, it's not possible to do non-proot fsck's for
367 removeable devices such as floppies if there are any
368 LABEL= or UUID= entries in /etc/fstab.
369
Theodore Ts'o981dc562000-07-06 14:13:29 +0000370 * badblocks.c (check_mount, main): Check to see if the filesystem
371 is mounted before doing a read/write or non-destructive
372 test. This can be overriden using the new -f option.
373
Theodore Ts'o35964b52000-07-06 13:19:43 +0000374 * badblocks.8.in: Update manual page to reflect that the
375 blocks-count parameter is now optional. Also properly
Theodore Ts'o981dc562000-07-06 14:13:29 +0000376 document the start-block parameter. Added documentation
377 for the -f option.
Theodore Ts'o35964b52000-07-06 13:19:43 +0000378
379 * badblocks.c (main): Allow the blocks-count parameter to be
380 optional. If it's not specified, use the size of the
381 device as a default.
382
Theodore Ts'od49a22b2000-07-06 00:31:27 +00003832000-07-05 Theodore Ts'o <tytso@valinux.com>
384
385 * badblocks.c (test_nd): Significantly simplify the logic so that
386 it's more obviously what's going on. Fixed a few
387 potential cases which weren't handled correctly in the
388 old, overly complicated logic.
389 (flush_bufs): Now doesn't take a second argument, and
390 always forces a sync; this is required before it's really
391 safe to call BLKFLSBUF, at least for some kernels.
392
Theodore Ts'o26ab5312000-05-29 15:05:42 +00003932000-05-29 Theodore Ts'o <tytso@valinux.com>
394
395 * mke2fs.c (PRS): Add a much more specific error message if the
396 filesystem size is defaulted and get_device_size returns a
397 size of zero. Otherwise, users get a confusing "invalid
398 argument while passed to ext2 library" error message.
399
Theodore Ts'o4ea0a112000-05-08 13:33:17 +00004002000-05-08 Theodore Ts'o <tytso@valinux.com>
401
Theodore Ts'oc96e5112000-05-08 14:47:15 +0000402 * fsck.c (interpret_device): Add better error messages if a UUID=
403 or LABEL= specification is given.
404
Theodore Ts'o4ea0a112000-05-08 13:33:17 +0000405 * mke2fs.c (main): We forcibly turn off the filetype feature if
406 the OS is the hurd, since the hurd doesn't support it.
407 (And since the hurd allows the transmogrification of files
408 to special files and vice versa --- for no good reason
409 that I can understand --- it can't support the filetype
410 feature for the forseeable future, either.)
411
412 * mke2fs.c (proceed_question): Fix reversed sense of
413 proceed_question that was busted due to the
414 internationalization patch. Fixed bug where if
415 proceed_question was called twice, the input buffer wasn't
416 cleared of the previous question's newline.
417
Theodore Ts'oe2207ce2000-04-06 21:51:18 +0000418Thu Apr 6 17:50:25 2000 Theodore Y. Ts'o <tytso@signal.thunk.org>
419
420 * badblocks.c (flush_bufs): Use fsync() if the system doesn't
421 support fdatasync().
422
Theodore Ts'offe4cab2000-04-03 13:27:41 +00004232000-04-03 Theodore Ts'o <tytso@valinux.com>
424
Theodore Ts'o373b8332000-04-03 16:22:35 +0000425 * badblocks.c, dumpe2fs.c, e2label.c, mke2fs.c, tune2fs.c,
426 uuidgen.c: For platforms that don't define optarg.h,
427 manually define optarg and optind.
428
Theodore Ts'o4d003982000-04-03 16:01:11 +0000429 * badblocks.8.in: Updated manual page with suggestions from David
430 Beattie.
431
432 * badblocks.c (test_nd): Generalized cleanup and bug-fixes. We
433 now explicitly clear out the signal handlers to prevent a
434 longjmp to a deactivated stack frame.
435 (test_rw): Fixed a signed vs. unsigned comparison error.
436
Theodore Ts'offe4cab2000-04-03 13:27:41 +0000437 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, lsattr.1.in,
438 mklost+found.8.in, tune2fs.8.in: Update Remy Card's e-mail
439 address.
440 chattr.1.in: Update which attributes aren't supported.
441
Theodore Ts'oe1a0a3e2000-02-11 05:00:19 +00004422000-02-09 Theodore Ts'o <tytso@valinux.com>
443
444 * chattr.1.in:
445 * lsattr.1.in: Change "version" to "version/generation number".
446
447 * chattr.1.in: Fix stupid file vs filesystem typo.
448
449 * tune2fs.c Fix spelling error (spare vs sparse).
450
451 * mke2fs.c (PRS): Add safety check to make sure the number of
452 blocks doesn't exceed 32 bits on a 64 bit machine.
453
454 * chattr.c: Random cleanup; file-only variables are now static.
455 Options for setting/clearings flags put into order, and
456 #ifdef's removed (since we now use a built-in header
457 file). Add error message if user tries to set and reset
458 the same flag.
459
460 * lsattr.c: Random cleanup; file-only variables are now static.
461 The -l "long" listing has been changed to look nicer.
462 Options names have been renamed to be more descriptive.
463
Theodore Ts'odd018f52000-02-06 23:57:07 +00004642000-02-06 Theodore Ts'o <tytso@valinux.com>
465
Theodore Ts'od9c56d32000-02-08 00:47:55 +0000466 * badblocks.c, chattr.c, dumpe2fs.c, e2label.c, findsuper.c,
467 fsck.c, get_device_by_label.c, lsattr.c, mke2fs.c,
468 mklost+found.c, nls-enable.h, partinfo.c, tune2fs.c,
469 uuidgen.c: Add Internationalization support as
470 suggested by Marco d'Itri <md@linux.it>.
471
Theodore Ts'odd018f52000-02-06 23:57:07 +0000472 * badblocks.c: Fix non-destructive read/write patches from David
473 Beattie. Non-standard variable-length automatic arrays
474 removed. Non-destrutive write test fixed so that logic is
475 clearer and more provably correct. (I believe the old
476 code had a bug where the disk data wasn't restored if it
477 was interrupted at the wrong time.)
478
479 * badblocks.8.in: Document new options in man page.
480
Theodore Ts'ob4ee1fb2000-02-02 19:08:51 +00004812000-02-02 Theodore Ts'o <tytso@valinux.com>
482
483 * fsck.c (interpret_device): If there was an attempt to interpret
484 a device specification of the type "UUID=" or "LABEL=",
485 and it fails, check to see if /proc/partitions is
486 readable. If not, print a warning message about /proc
487 perhaps not being mounted, and exit.
488
489 * mke2fs.c (check_plausibility): Remove unneeded #include of
490 linux/fs.h. Add #define of MAJOR if necessary.
491
492 * partinfo.c: Remove unneeded #include of linux/fs.h
493
Theodore Ts'o582134c2000-01-19 13:26:23 +00004942000-01-19 Theodore Ts'o <tytso@valinux.com>
495
496 * tune2fs.c (usage): Update the usage message to correctly
497 document the -s option.
498
Theodore Ts'o879ac922000-01-18 20:59:11 +00004992000-01-18 Theodore Ts'o <tytso@valinux.com>
500
501 * badblocks.c: Folded in patches David Beattie <dbeattie@usa.net>.
502 Need to do cleanup before release: use of GCC extensions
503 (dynamic arrays); unclean coding tricks (use of || instead
504 of if statements, etc.). Comments from David Beattie:
505
506 "I added non-destructive write-testing, and quite a few
507 other features. The non-destructive write testing,
508 triggered by new "-n" command-line option, will write test
509 patterns to the disk, but only after reading data off the
510 disk into memory. Then, comparing the test patterns gives
511 a result as to whether or not those sectors are reliable.
512 Finally, the original data is written back.
513
514 To streamline this operation, I added another option, "-c
515 blocks_at_once", which will give the number of disk blocks
516 to process at one time (mnemonic--"count"). I made this
517 default to 16 (as in the read-only testing mode), and also
518 affect the read-only testing mode. Of course, read-only
519 mode needs (count * block_size) amount of memory, and
520 non-destructive read-write needs 3 times that much, so it
521 makes sense to do the calculations and not overrun
522 available RAM...I would have liked to implement and
523 auto-memory-usage heuristic, but I have no idea if it's
524 even possible to determine the amount of free memory on a
525 Unix system except by reading /proc entries, and that
526 didn't seem portable. I did NOT make this blocks_at_once
527 affect the behavior of the test_rw routine, as it is
528 processing the whole disk at once, anyway.
529
530 I *think* that I got higher detection rates on my hard
531 drive using random test data than patterned test data, so
532 my non-destructive mode initializes its test data buffer
533 randomly.
534
535 I fixed a typo in flush_bufs that caused the ioctl
536 BLKFLSBUF to never get compiled into the program.
537
538 Also, I added an "undocumented" (I didn't put it into the
539 usage message; you can if you think it's useful) "-h"
540 option to specify the host device to flush--useful if you
541 want to test out my "non-destructive" code on something
542 other than a hard drive, such as a file on a hard drive,
543 and want the host hard drive to flush.
544
545 I provided support for an "input" file (via option "-i",
546 similar to the "-o" option)...containing a list of
547 already-known bad blocks; it will skip testing those
548 blocks, thus adding speed to the bad block scan (on my
549 computer, hitting a physically bad block causes a
550 half-second-or-more freeze as the kernel waits for the
551 hard drive to give up and reset itself; pretty annoying
552 when you already know the block is bad from a previous
553 scan).
554
555 Finally, the real killer, the persistent re-scan (option:
556 "-p num_passes") that I created will, if desired,
557 persistently re-scan the drive until it has completed a
558 user-decidable number of passes in a row during which no
559 new bad blocks are found. On my drive, I would see
560 behavior that a certain percentage of bad blocks would be
561 found with each pass (it was not reliable in the defective
562 areas!), so I wanted it to check it over and over again
563 until it didn't find any more, several times. Perhaps
564 this will be useful to others. Defaults of course to
565 zero, meaning it will stop after the first pass. I used
566 "-p 2" on my drive, and it ran for 2 1/2 days...then used
567 "-p 3" a couple days later and it ran for a few more
568 hours, and since then the rest of my drive has been
569 completely reliable.
570
571 Implementation of these last two features, "-i" and "-p",
572 I did using a bb_list from libext2fs. I debated whether
573 bad blocks input through "-i" should be output into the
574 "-o" file (or stdout, of course), and decided against it,
575 but left the code to do so in place, commented out, just
576 for your information.
577
578 In order to maintain data integrity upon interruption of a
579 non-destructive-write test, I created a signal handler
580 which I install which will write back whatever original
581 disk data is in the buffers upon any of the fatal signals
582 (except SIGKILL, of course).
583
584 Of course, ideally, the new options would be reflected in
585 the badblocks manual page, but I am not experienced at
586 manual page modification; if you decide my patch to
587 badblocks should be incorporated into the distribution, I
588 could learn how to update the manpage and other
589 documentation, or you could do it for me after exercising
590 your opinions, if you have any, on exactly what the
591 command-line parameters should be called and which ones
592 should be in the distribution."
593
Theodore Ts'o3cb77842000-01-18 16:30:27 +00005942000-01-07 Theodore Ts'o <tytso@valinux.com>
595
596 * Really fix the bug where "fsck -As" will actually allow
597 interactive fsck's. (For those people who like to do
598 interactive fsck's in the /etc/rc scripts!?!)
599
Theodore Ts'obfd21931999-11-23 13:48:58 +00006001999-11-23 <tytso@valinux.com>
601
602 * tune2fs.8.in: Fix man page so that the sparse_super filesystem
603 option is properly named.
604
Theodore Ts'o6733c2f1999-11-23 02:23:30 +00006051999-11-22 <tytso@valinux.com>
606
607 * mke2fs.c: Change log2() and log10() to int_log2() and
608 int_log10() to avoid namespace collisions. Change #ifdef
609 sparc to #ifdef __sparc__.
610
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00006111999-11-19 <tytso@valinux.com>
612
613 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
614 the source directory.
615
Theodore Ts'o6fdc7a31999-11-10 13:34:40 +00006161999-11-10 <tytso@valinux.com>
617
Theodore Ts'ocd086361999-11-10 16:00:39 +0000618 * Release of E2fsprogs 1.18
619
6201999-11-10 <tytso@valinux.com>
621
Theodore Ts'o6fdc7a31999-11-10 13:34:40 +0000622 * mke2fs.8.in: Update manual page so that the sparse_option
623 filesystem option is properly named.
624
Theodore Ts'o6a35ffa1999-11-04 22:34:43 +00006251999-11-04 <tytso@valinux.com>
626
627 * fsck.c (main): Move setting of the interactive flag to before
628 the call to check_all(), so that people who try to use
629 fsck -As can do so interactively.
630
Theodore Ts'o36caf251999-10-26 14:29:22 +00006311999-10-26 <tytso@valinux.com>
632
Theodore Ts'o28e11941999-10-26 18:17:20 +0000633 * Release of E2fsprogs 1.17
634
6351999-10-26 <tytso@valinux.com>
636
Theodore Ts'o3bc03661999-10-26 17:17:00 +0000637 * fsck.c (PRS, device_already_active): Add debugging hook; if the
638 environment variable FSCK_FORCE_ALL_PARALLEL is set, then
639 force all fsck runs to happen in parallel.
640
Theodore Ts'o36b01301999-10-26 14:38:36 +0000641 * get_device_by_label.c (has_right_label): Fixed bug where code
642 used a strncmp to compare a binary UUID value which may
643 contain a NULL. Fixed GCC warnings; added const to char *
644 typed variables. Eliminated non-portable use of u_char.
645
Theodore Ts'o4a600561999-10-26 14:35:51 +0000646 * mke2fs.c (PRS): Fix gcc warnings; add const to some char *
Theodore Ts'o9094f281999-10-26 16:42:50 +0000647 variables, including in struct mke2fs_defaults.
648 (set_fs_defaults): Changed parameter name to avoid
649 gcc warnings.
Theodore Ts'o4a600561999-10-26 14:35:51 +0000650
Theodore Ts'ob5135711999-10-26 14:33:24 +0000651 * fsck.c (wait_one): Fix gcc warnings; add #include for ctype.h,
652 add const to char * variables, and use NOARGS to declare
653 functions that take no arguments. Also fix a memory leak
654 in execute() where we weren't freeing argv[] after forking
655 the child process.
656
Theodore Ts'o36caf251999-10-26 14:29:22 +0000657 * chattr.c: Add hack to compile in a definition for S_ISLNK so we
658 can successfully compile even with warnings turned on.
659
Theodore Ts'oad6783d1999-10-26 01:58:54 +00006601999-10-25 <tytso@valinux.com>
661
662 * mke2fs.c (show_stats): Capitalized Hurd to make the GNU types
663 happy.
Theodore Ts'oe6597041999-10-26 02:30:16 +0000664 (PRS): Use __u64 instead of long long for portability
665 reasons. Also moved #include of sys/stat.h inside #ifdef
666 HAVE_LINUX_MAJOR_H for portability reasons.
Theodore Ts'oad6783d1999-10-26 01:58:54 +0000667
668 * fsck.c (execute): Fix really stupid bug in the linked list
669 management which caused fsck in parallel mode to go into
670 an infinite loop.
671
Theodore Ts'o896938d1999-10-23 01:04:50 +00006721999-10-22 <tytso@valinux.com>
673
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000674 * Release of E2fsprogs 1.16
675
6761999-10-22 <tytso@valinux.com>
677
Theodore Ts'o896938d1999-10-23 01:04:50 +0000678 * tune2fs.c (main): Add a new option -O which allows the user to
679 set and clear certain "safe" filsystem feature flags.
680 Currently, the only ones which are supported for
681 modification are sparse_superblock and filetype.
682
683 * mke2fs.c (PRS): Add new option -O which allows the user to
684 request filesystems with specific filesystem options. By
685 default on 2.2 and later systems, create filesystems that
686 have both file type information and sparse superblocks.
687
Theodore Ts'ocaf8ce41999-10-21 19:56:34 +00006881999-10-21 <tytso@valinux.com>
689
690 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, e2label.8.in,
691 fsck.8.in, lsattr.1.in, mke2fs.8.in, mklost+found.8.in,
692 tune2fs.8.in, uuidgen.1.in: Update man page to use a more standard
693 format (bold option flags and italicized variables), as
694 suggested by Andreas Dilger (adilger@enel.ucalgary.ca)
695
Theodore Ts'o7f4bb6c1999-10-20 18:11:01 +00006961999-10-14 <tytso@valinux.com>
697
Theodore Ts'o671cbfa1999-10-20 18:14:23 +0000698 * tune2fs.c (main): Fix typo (double spaces) in messages regarding
699 changing the sparse superblock option
700
Theodore Ts'o7f4bb6c1999-10-20 18:11:01 +0000701 * fsck.c (wait_one): If the fsck process just started, wait a
702 second before sending a SIGUSR1, to give it a chance
703 to set the signal handler; otherwise, fsck will die on an
704 unhandled SIGUSR1.
705
7061999-09-15 <tytso@valinux.com>
Theodore Ts'o76714331999-10-20 18:06:29 +0000707
708 * mke2fs.c (show_stats): Fix display bug when printing out the
709 number of superblocks. Suggested by Yann Dirson.
710
Theodore Ts'o27401561999-09-14 20:11:19 +00007111999-09-08 <tytso@valinux.com>
712
713 * partinfo.c: Fix minor compilation bugs pointed out by Yann
714 Dirson.
715
716 * mke2fs.c: Don't turn on sparse superblocks by default on pre-2.2
717 kernels.
718
719 * mke2fs.8.in: Add the possible valid block sizes for mke2fs.
720 Document the -n flag, and the new defaults for the -s
721 flag.
722
723 * dumpe2fs.c, dumpe2fs.8.in: Add new options -f (force) and -h
724 (header-only).
725
7261999-08-13 <tytso@valinux.com>
727
728 * mke2fs.c (PRS): Fix logic for turning on/off the sparse
729 superblock option.
730
7311999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000732
733 * Release of E2fsprogs 1.15
734
Theodore Ts'o50787ea1999-07-19 15:30:21 +00007351999-07-18 <tytso@rsts-11.mit.edu>
736
737 * mke2fs.c (PRS, set_fs_defaults): Add new option -T which allows
738 the user to specify the how the filesystem is to be used.
739 Mke2fs now chooses the filesystem parameters automatically
740 based on the size of the filesystem and the intended use
741 of the filesystem. Add new option -n which simply goes
742 through the calculations to determine the parameters of
743 the filesystem the system would make.
744
7451999-07-18 <tytso@valinux.com>
746
747 * fsck.c, fsck.h: Add support for new option -C. This option will
748 automatically manage e2fsck processes so that they will
749 print completion/progress bars. If multiple filesystems
750 are being checked, arrange to make sure that only one
751 e2fsck process is displaying a progress bar at a time.
752
7531999-07-08 <tytso@valinux.com>
Theodore Ts'o9f10a7b1999-07-16 10:41:36 +0000754
755 * badblocks.c (do_test): Don't complain if the write error occurs
756 on a non-block boundary. This is perfectly common when
757 using blocksizes larger than 1k.
758
Theodore Ts'oc54b3c31999-07-03 07:20:06 +00007591999-07-03 <tytso@valinux.com>
Theodore Ts'o5dbb0721999-07-03 06:16:06 +0000760
761 * uuidgen.c: Add option parsing so that user can ask for either a
762 time-based UUID or a random-based UUID.
763
Theodore Ts'oc54b3c31999-07-03 07:20:06 +00007641999-07-02 <tytso@valinux.com>
Theodore Ts'o2d8defd1999-07-03 01:59:42 +0000765
766 * fsck.c: Added support for LABEL= and UUID= specifications for
767 the filesystem's device, to match what recent mount
768 programs can support. Also, close stdin when doing fsck
769 -A or when checking more than one filesystem at a time, so
770 that e2fsck doesn't try to ask interactive questions if
771 the filesystem appears to be mounted.
772
773 * get_device_by_label.c: New file added to support LABEL=foo and
774 UUID=bar type specifications.
775
Theodore Ts'o00eedba1999-07-03 00:45:58 +00007761999-07-01 <tytso@valinux.com>
777
778 * badblocks.c: Make the "done" string include enough spaces to
779 clear out a large block number.
780
Theodore Ts'oca3c3281999-06-29 14:37:35 +00007811999-06-29 <tytso@valinux.com>
782
783 * mke2fs.c (check_mount): Allow a filesystem to be made even if it
784 appears mounted if the force option is given.
785
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00007861999-06-24 <tytso@valinux.com>
787
788 * mke2fs.8.in: Fix typo in man page which caused the badblocks
789 command to not show up in the "SEE ALSO" section.
790
Theodore Ts'oe2423cc1999-06-18 00:51:31 +00007911999-05-02 <tytso@rsts-11.mit.edu>
792
793 * findsuper.c: Added documentation from aeb@cwi.nl; some minor
794 code cleanups.
795
Theodore Ts'o02e7dd91999-06-18 00:48:41 +00007961999-05-20 <tytso@rsts-11.mit.edu>
797
798 * dumpe2fs.c, dumpe2fs.8.in: Added new command-line options which
799 allow a filesystem expert to specify the superblock and
800 blocksize when opening a filesystem. This is mainly
801 useful when examining the remains of a toasted filesystem.
802
Theodore Ts'o5d45d801999-03-16 19:35:19 +00008031999-03-11 Andreas Dilger <adilger@enel.ucalgary.ca>
804
805 * uuidgen.c, uuidgen.1.in: Created command-line utility to
806 generate UUIDs.
807
8081999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
809
810 * fsck.c (fsck_device, execute): Don't dereference a null pointer
811 when checking a filesystem not in /etc/fstab.
812
Theodore Ts'o7d5633c1999-02-09 08:14:28 +00008131999-02-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
814
815 * fsck.c (fsck_device): Print an error message if the user passes
816 in a device or directory name which isn't found in /etc/fstab.
817 Allow the location of /etc/fstab to be overridden by
818 the FSTAB_FILE environment variable.
819
8201999-01-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
821
822 * mke2fs.c (write_inode_tables): Add kludge code so that when the
823 MKE2FS_SYNC environment variable is set, mke2fs will sync
824 every MKE2FS_SYNC block groups, while it is writing out
825 the inode tables. This is to work around a VM bug in the
826 2.0 kernel. I've heard a report that a RAID user was able
827 to trigger it even using a 2.2 kernel.
828
Theodore Ts'oee922991999-01-16 05:39:12 +00008291999-01-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
830
831 * fsck.c (execute, wait_one): Modified routines so that they
832 accurately create an fsck_instance even when the noexecute
833 flag is set. This allows for accurate debugging of the
834 fsck pass structure.
835 (check_all): When the verbose flag is given twice, print
836 debugging information about when fsck is waiting for jobs
837 to finish.
838
Theodore Ts'o7953f611999-01-09 05:03:52 +00008391999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
840
Theodore Ts'o9e51eca1999-01-09 16:32:31 +0000841 * Release of E2fsprogs 1.14
842
8431999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
844
Theodore Ts'o7953f611999-01-09 05:03:52 +0000845 * fsck.8.in: Clarified and expanded the documentation for the -A
846 switch.
847
Theodore Ts'o665f7101999-01-08 13:33:39 +00008481999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
849
850 * fsck.c (load_fs_info): If the pass number field is missing, it
851 needs to be treated as zero.
852
Theodore Ts'oa88fa0c1999-01-05 07:02:39 +00008531999-01-05 Theodore Ts'o <tytso@rsts-11.mit.edu>
854
Theodore Ts'o5515e6b1999-01-05 07:25:06 +0000855 * mke2fs.c (PRS): Allow the user to specify exactly how many
856 inodes he/she wishes.
857
Theodore Ts'oa88fa0c1999-01-05 07:02:39 +0000858 * chattr.c, lsattr.c: Only print the version information for the
859 program if the -V option is given.
860
861 * chattr.c: Ignore symbolic links when doing a recursive descent
862 through a directory.
863
Theodore Ts'o93ab9d71999-01-02 04:04:42 +00008641999-01-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
865
866 * fsck.c (load_fs_info, parse_fstab_line): Ignore fstab lines
867 are commented out. Also allow blank lines in the
868 /etc/fstab file.
869 (execute): In verbose mode, print the mountpount of the
870 filesystem which we are checking (user request).
871
8721998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
873
874 * mke2fs.c: Add definition of SCSI_BLK_MAJOR if not defined, for
875 compatibility with Linux 1.2.13 header files.
876
Theodore Ts'o556ad131998-12-19 08:10:58 +00008771998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
878
879 * Release of E2fsprogs 1.13
880
Theodore Ts'ocb620171998-12-08 02:21:29 +00008811998-12-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
882
883 * mke2fs.8.in: Fixed stupid typo ("Raid options are _comma_
884 seperated", instead of common separated)
885
Theodore Ts'o5a679c81998-12-03 16:40:38 +00008861998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
887
888 * Makefile.in: Updated dependencies.
889
8901998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
891
892 * fsck.c (load_fs_info): Parse /etc/fstab ourselves, instead of
893 relying on getmntent(). This has the advantage of
894 allowing us to properly handle missing pass numbers correctly.
895
Theodore Ts'o1dde43f1998-11-14 04:18:28 +00008961998-11-13 Theodore Ts'o <tytso@rsts-11.mit.edu>
897
898 * tune2fs.8.in: Fix minor display bug in the nroff.
899
900 * mke2fs.c (show_stats, write_inode_tables): Use the log10
901 function to calculate the display of block numbers so that
902 things look nice on an 80 character display.
903
9041998-10-12 Theodore Ts'o <tytso@rsts-11.mit.edu>
905
906 * mke2fs.c (usage): Add the sparse-super-flag to the usage
907 message.
908
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00009091998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
910
911 * Release of E2fsprogs 1.12
912
Theodore Ts'oeb5ab741998-07-04 17:47:52 +00009131998-07-04 Theodore Ts'o <tytso@rsts-11.mit.edu>
914
915 * findsuper.c (main): Print the block group number which is now
916 being written by e2fsprogs.
917
Theodore Ts'o818180c1998-06-27 05:11:14 +00009181998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
919
920 * fsck.c (ignore): Remove unused variable cp.
921
922 * chattr.c (fatal_error):
923 * tune2fs.c (usage):
924 * lsattr.c (usage):
925 * dumpe2fs.c (usage):
926 * badblocks.c (usage): Remove volatile from declaration.
927
928 * fsck.c: Change use of strdup to be string_copy, since we don't
929 trust what glibc is doing with strdup. (Whatever it is,
930 it isn't pretty.)
931
9321998-06-19 Theodore Ts'o <tytso@rsts-11.mit.edu>
933
934 * mke2fs.c (PRS): Add a -V option which prints the version number
935 and exit.
936
Theodore Ts'o4bf5fbf1998-05-14 22:43:10 +00009371998-05-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
938
939 * fsck.c (ignore): Remove check for filesystems with the noauto
940 option.
941
Theodore Ts'o7e44f241998-04-01 03:16:29 +00009421998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
943
944 * Makefile.in: Change to use new installation directory variables
945 convention. Fix uninstall rules to take $(DESTDIR) into
946 account. Remove cat8dir and cat1dir from the installdirs
947 target, since modern man package don't necessarily put the
948 cat directory in /usr/man/cat?.
949
Theodore Ts'oa789d841998-03-30 01:20:55 +00009501998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
951
Theodore Ts'o3b27db91998-03-30 01:32:10 +0000952 * e2label.8.in: New man page to document the e2label function.
953
Theodore Ts'oa789d841998-03-30 01:20:55 +0000954 * e2label.c: Fix -Wall warning by making functions static.
955
9561998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
957
958 * chattr.1.in: Document that the append-only attribute may
959 only be set or cleared by the superuser.
960
961 * Update all manual pages to that the availability section is
962 up-to-date.
963
964 * e2label.8.in, tune2fs.8.in: Update manual page to state that
965 labels must be no longer than 16 characters, or they will
966 be truncated.
967
968 * e2label.c (change_label), tune2fs.c (main): If the label is
969 longer than 16 characters, print a warning message stating
970 that the label will be truncated.
971
972 * mke2fs.c (PRS): If the user specifies a filesystem size, and
973 it's larger than the apparent size of the device, print a
974 warning message and ask if the user wants to proceed.
975
Theodore Ts'obbfa3aa1998-03-21 07:12:46 +00009761998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
977
978 * mke2fs.c (check_plausibility): Fixed spelling typo in warning
979 message. Fixed up -Wall warnings in file.
980
Theodore Ts'oe9271681998-03-09 03:23:51 +0000981Sun Mar 8 22:21:48 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
982
983 * partinfo.c (main): The ioctl BLKGETSIZE requires a long, not an
984 int.
985
Theodore Ts'o92bcc591998-02-16 22:29:34 +0000986Sun Feb 1 16:53:36 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
987
988 * badblocks.8: Update documentation to note that output format
989 of badblocks is suitable for use with e2fsck -l or
990 mke2fs -l.
991
992 * mke2fs.c (handle_bad_blocks): Fix bug so that all groups with
993 bad superblock backup blocks are printed (not just the
994 first one).
995
Theodore Ts'oca8abba1998-01-19 14:55:24 +0000996Mon Dec 1 17:01:04 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
997
998 * badblocks.8.in: Add documentation for the -s option.
999
Theodore Ts'o519149f1997-10-25 03:49:49 +00001000Fri Oct 24 23:37:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1001
1002 * fsck.c:
1003 * chattr.c: Remove #include of getopt.h, since it's not needed.
1004
1005 * tune2fs.c (main):
1006 * lsattr.c (main):
1007 * badblocks.c (main):
1008 * dumpe2fs.c (main):
1009 * mke2fs.c (PRS): Make the variable which getopt returns into be
1010 an int, so that it won't lose on platforms where char is
1011 unsigned.
1012
Theodore Ts'od163b091997-10-03 17:42:28 +00001013Fri Oct 3 13:38:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1014
1015 * mke2fs.c (parse_raid_opts): Make parse_raid_opts return a void,
1016 to fix a -Wall warning.
1017
Theodore Ts'o00e54331997-09-16 02:13:52 +00001018Mon Sep 15 22:07:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1019
1020 * tune2fs.c (main):
1021 * mklost+found.c (main):
1022 * lsattr.c (main):
1023 * dumpe2fs.c (main):
1024 * chattr.c (main):
1025 * badblocks.c (main): Declare main to return an int, as required.
1026 Make sure main always ends with an exit(0). (Some
1027 programs weren't doing this, and thus were returning a
1028 random exit value.)
1029
Theodore Ts'oab6b8ab1997-07-14 19:28:55 +00001030Mon Jul 14 15:27:29 1997 Theodore Y. Ts'o <tytso@mit.edu>
1031
1032 * e2label.c: New file contributed by Andries Brouwer which
1033 provides an easy-to-use interface to modify the filesystem
1034 label.
1035
1036 * Makefile.in (SPROGS): Add Makefile support to build e2label
1037
Theodore Ts'o024996c1997-06-17 05:38:35 +00001038Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1039
1040 * Release of E2fsprogs 1.11
1041
Theodore Ts'oe22d4611997-06-17 03:57:27 +00001042Mon Jun 16 23:37:54 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1043
1044 * mke2fs.c (show_stats): Adjust the number of columns printed when
1045 displaying the superblock backups to avoid running over
1046 80 columns when making a really big disk.
1047
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001048Thu May 8 22:22:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1049
Theodore Ts'o583ccdc1997-05-09 03:06:31 +00001050 * badblocks.8.in, chattr.1.in, dumpe2fs.8.in, fsck.8.in,
1051 mke2fs.8.in, tune2fs.8.in: Fix minor typos and grammer
1052 oops found by Bill Hawes (whawes@star.net).
1053
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001054 * mke2fs.c (test_disk): Pass the blocksize to the bad blocks
1055 command so that all of the filesystem gets tested in the
1056 case where the blocksize 2048 or 4096.
1057
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001058Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1059
1060 * Release of E2fsprogs version 1.10
1061
1062Thu Apr 24 09:52:47 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1063
1064 * mke2fs.c: Added new option -R, which specifies RAID options.
1065 Currently the only supported RAID option is "stride" which
1066 specifies the stripe width in RAID filesystem. This is
1067 used to aid in the placement of the inode and block
1068 bitmaps.
1069
1070 * mke2fs.8.in, tune2fs.8.in: Added warnings that the sparse
1071 superblock option isn't yet supported by most kernels.
1072
1073Wed Apr 23 22:42:51 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1074
1075 * mke2fs.c (PRS): Make the default filesystem revision be 0, not
1076 1. (Since some people are still worried about 1.2.13
1077 compatibility).
1078
1079Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1080
1081 * Release of E2fsprogs version 1.09
1082
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001083Fri Apr 11 18:57:24 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1084
1085 * chattr.1.in: Updated man page so that the 'A' attribute is
1086 specified everywhere.
1087
1088 * chattr.c (usage): Added usage message for the 'A' attribute.
1089
1090Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1091
1092 * Release of E2fsprogs version 1.08
1093
Theodore Ts'o521e3681997-04-29 17:48:10 +00001094Thu Apr 10 07:08:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1095
1096 * dumpe2fs.c (list_desc): List the offsets of the inode and block
1097 bitmaps, and the inode table. List the block boundaries
1098 for the groups.
1099
1100Sat Apr 5 11:55:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1101
1102 * tune2fs.c (main): Implement the -s flag allows the user to
1103 set and reset the sparse superblock flag.
1104
1105 * mke2fs.c (PRS): By default generate DYNAMIC revision
1106 filesystems. The -s flag controls whether or not the
1107 sparse superblock flag is set.
1108 (PRS): Change to allow the user to specify the true
1109 maximum number of blocks per group to reflect the
1110 blocksize.
1111
Theodore Ts'o19c78dc1997-04-29 16:17:09 +00001112Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1113
1114 * Release of E2fsprogs version 1.07
1115
1116Thu Mar 6 17:15:05 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1117
1118 * mke2fs.c (create_root_dir): Set the root directory's i_uid and
1119 i_gid to be the real user and group id.
1120
1121Tue Mar 4 10:14:33 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1122
1123 * mke2fs.c (check_plausibility): Add more intelligent error
1124 messages when the device doesn't exist.
1125
1126Sat Mar 1 10:43:32 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1127
1128 * fsck.c (main): Fix bug where the PATH environment variable isn't
1129 set when it is unset.
1130
1131Tue Jan 14 12:30:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1132
1133 * mke2fs.c (write_inode_tables): Fixed bug in write_inode_tables
1134 where a loop variable was getting reused in a nested loop.
1135 This caused the inode table to not be correctly
1136 initialized.
1137
1138Thu Jan 2 00:00:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1139
1140 * lsattr.c, chattr.c: Include string.h, since we use memcpy().
1141
1142 * findsuper.c: Use time_t for ctime(), not __u32.
1143
1144Sat Dec 28 23:39:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1145
1146 * badblocks.c: Adapted -vv modifications from Rik Faith so that
1147 they frequently update the block number field.
1148
1149 * badblocks.8.in: Document the optional start-block parameter
1150
1151Mon Oct 14 11:52:58 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1152
1153 * mke2fs.c: Updated to use new ext2fs_allocate_tables() function.
1154
1155Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1156
1157 * Release of E2fsprogs version 1.06
1158
Theodore Ts'o5c576471997-04-29 15:29:49 +00001159Mon Oct 7 00:56:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1160
1161 * chattr.1.in: Documented the 'A' (noatime) attribute.
1162
1163 * dumpe2fs.c (main): Change EXT2_SWAP to EXT2_FLAG_SWAP for
1164 consistency's sake.
1165
1166Sun Sep 22 16:18:47 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1167
1168 * chattr.c (decode_arg): Add support for the 'A' (noatime) flag.
1169
1170Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1171
1172 * Release of E2fsprogs version 1.05
1173
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001174Sat Sep 7 07:34:11 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1175
1176 * tune2fs.c (main): Add support for new option -C, which sets the
1177 current number of mounts.
1178 (main): Allow the interval to be specified in seconds,
1179 mostly for debugging.
1180
1181Tue Aug 27 17:27:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
1182
1183 * Makefile.in (SMANPAGES): Use @FSCK_MAN@ instead of fsck.8.
1184 (SPROGS): Use @FSCK_PROG@ instead of fsck.
1185
1186Thu Aug 22 00:51:44 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1187
1188 * mke2fs.c (zap_bootblock): Don't do zap_bootblock on a
1189 sparc.
1190
1191Tue Aug 20 00:15:46 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1192
1193 * chattr.c (main): Fixed bug so that chattr -v works. (Bug report
1194 and fix sent by Charles Howes, chowes@eznet.ca)
1195
1196Fri Aug 9 11:52:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1197
1198 * tune2fs.8.in:
1199 * tune2fs.c: Added support for the -L option which sets the volume
1200 label, the -M option which sets the last mounted
1201 directory, and the -U option which sets the filesystem UUID.
1202
1203 * mke2fs.8.in:
1204 * mke2fs.c: Added support for the -o option, which overrides the
1205 creator OS. Generate a UUID for the filesystem, if
1206 applicable. Added support for the -L option which sets
1207 the volume label, and the -M option which sets the last
1208 mounted directory.
1209
1210Sat Jun 22 17:43:17 1996 Remy Card <card@bbj.linux.eu.org>
1211
1212 * chattr.c (decode_arg): Integrated Michael Nonweiler's fix to
1213 avoid a segmentation fault when the "-v" option is used
1214 and no version number is specified.
1215
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001216Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1217
1218 * Release of E2fsprogs version 1.04
1219
1220Wed May 15 21:15:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1221
1222 * Makefile.in (fsck): fsck doesn't need to be linked with the ext2
1223 libraries.
1224
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001225Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1226
1227 * Release of E2fsprogs version 1.03
1228
1229Thu Mar 7 03:43:20 1996 <tytso@rsts-11.mit.edu>
1230
1231 * mke2fs.c (PRS): Add (for development only) support to
1232 specify revision and inode size of the new filesystem.
1233
1234Tue Mar 5 03:51:35 1996 <tytso@rsts-11.mit.edu>
1235
1236 * mke2fs.8.in: Fix a few minor typo's in the man page.
1237
1238 * mke2fs.c (reserve_inodes): Add support for dynamic first inode
1239 revision.
1240
1241Mon Feb 5 22:19:49 1996 <tytso@rsts-11.mit.edu>
1242
1243 * fsck.c (check_all, PRS): Added new flag -P, which turns on the
1244 parallel root option. This allows you to check the root
1245 filesystem in parallel with the other filesystems. Note
1246 that this is not the safest thing in the world to do,
1247 since if the root filesystem is in doubt things like
1248 the e2fsck executable might be corrupted! But some
1249 sysadmins, who don't want to repartition the root
1250 filesystem to be small and compact, may really want this
1251 option turned on.
1252
Theodore Ts'o74becf31997-04-26 14:37:06 +00001253Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1254
1255 * Release of E2fsprogs version 1.02
1256
1257Tue Oct 30 21:14:12 1995 <tytso@rsts-11.mit.edu>
1258
1259 * mke2fs.c (check_plausibility): Add check to warn user if they
1260 are trying to mke2fs the whole disk. (/dev/hda
1261 vs. /dev/hda1)
1262
1263Fri Dec 15 19:09:56 1995 <tytso@rsts-11.mit.edu>
1264
1265 * fsck.c (check_all): If we break out of the loop because we are
1266 serializing and have just started at fsck we haven't
1267 finished the pass. We need to go round again in case there
1268 are more filesystems to be done in this pass. (Patch
1269 submitted by Mike Jagdis)
1270
1271Sat Dec 9 10:07:16 1995 <tytso@rsts-11.mit.edu>
1272
1273 * dumpe2fs.c (in_use): test_bit() was renamed to
1274 ext2fs_test_bit().
1275
Theodore Ts'o297f47a1997-04-26 14:25:20 +00001276Mon Oct 30 20:21:18 1995 <tytso@rsts-11.mit.edu>
1277
1278 * fsck.c (fsck_device): Check fstype instead of type; this was a
1279 stupid typo which caused coredumps in some cases.
1280
Theodore Ts'oa418d3a1997-04-26 14:00:26 +00001281Thu Oct 26 12:05:18 1995 <tytso@rsts-11.mit.edu>
1282
1283 * Makefile.in (install): Strip programs when they are installed.
1284
1285Fri Aug 18 15:10:40 1995 Theodore Y. Ts'o <tytso@dcl>
1286
1287 * mke2fs.c (PRS): Move call of check_mount() from main() to PRS(),
1288 so we do the check to see if the filesystem is mounted
1289 *before* we try to determine the size of the device.
1290
1291Wed Sep 6 23:34:07 1995 Remy Card <card@bbj>
1292
1293 * fsck.c (load_fs_info): Load the informations from /etc/fstab in
1294 the same order.
1295
1296Thu Aug 17 22:33:09 1995 <tytso@rsts-11.mit.edu>
1297
1298 * mke2fs.c (check_mount): Use the new ext2fs_check_if_mounted()
1299 function to determine if the device is mounted.
1300
1301 * mke2fs.c (PRS): Change call to use the new
1302 ext2fs_get_device_size() function in order to determine
1303 the size of the filesystem. Remove get_size() and
1304 is_valid_offset(), which are no longer called.
1305
1306Fri Aug 11 08:26:24 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1307
1308 * fsck.c (fsck_device): Make sure fstype has been set by the user
1309 and that it does not begin with "no" and the user has
1310 specified exactly one type before using it as the type to
1311 check.
1312
1313Fri Aug 11 14:17:18 1995 Remy Card <card@bbj>
1314
1315 * badblocks.8:
1316 * chattr.1:
1317 * dumpe2fs.8:
1318 * fsck.8:
1319 * lsattr.1:
1320 * mke2fs.8:
1321 * mklost+found.8:
1322 * tune2fs.8: Updated date and version number.
1323
1324Thu Aug 10 14:18:36 1995 Remy Card <card@bbj>
1325
1326 * tune2fs.c: Fixed a bug which prevented the use of user and group
1327 names with the -g and -u options. Thanks to Jean Christophe
1328 ANDRE <progfou@mycrob.cafard.freenix.fr>.
1329
1330 * mke2fs.8:
1331 * tune2fs.8: Fixed a spelling error in Ted's name :-)
1332
1333Wed Aug 9 20:41:54 1995 Theodore Y. Ts'o <tytso@dcl>
1334
1335 * mke2fs.c (count_blocks): Divide the size by
1336 EXT2_BLOCK_SIZE(&param), instead of assuming that the
1337 blocksize is always 1024 bytes.
1338
1339Sat Aug 5 12:00:51 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1340
1341 * mke2fs.c (PRS): Use malloc() instead of alloca() --- alloca() is
1342 not portable!! In any case putenv() in some systems must
1343 take a static character array or malloc()'ed memory;
1344 passing memory allocated using alloca() to putenv() is not
1345 advisable.
1346
1347 * chattr.c (chattr_dir_proc):
1348 * lsattr.c (lsattr_dir_proc): Use malloc() instead of alloca() ---
1349 alloca is not portable!
1350
1351 * fsck.c (fsck_device): If the filesystem type is specified by the
1352 user using the -t option, let it override the type in
1353 /etc/fstab.
1354
1355 * fsck.c (strdup): Don't build strdup() if the system defines it.
1356
1357Mon Jun 12 19:15:10 1995 Theodore Y. Ts'o (tytso@dcl)
1358
1359 * chattr.c, lsattr.c: Include <sys/types.h> for <dirent.h>'s
1360 benefit.
1361
1362 * The $(UPROGS) go in bin, not sbin.
1363
1364 * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c,
1365 tune2fs.c: Don't include <getopt.h> if it doesn't exist.
1366
1367Mon Jun 12 16:36:04 1995 Theodore Y. Ts'o <tytso@dcl>
1368
1369 * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c,
1370 tune2fs.c: Only include getopt.h if HAVE_GETOPT_H is defined.
1371
1372Sat Jun 10 23:37:09 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1373
1374 * chattr.c: Include errno.h, since we use errno
1375
1376 * fsck.c (load_fs_info): If HAVE_MNTENT_H is not defined,
1377 explicitly initialize filesys_info to be NULL.
1378
1379 * mke2fs.c: Include the stdio.h and errno.h header files
1380
1381Thu Jun 8 13:25:23 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1382
1383 * mke2fs.c: Only include <linux/fs.h> if we can.
1384 (get_size): Don't try to use the BLKGETSIZE ioctl unless it's defined.
1385 (check_mount): Only check to see if the device is mounted if
1386 HAVE_MNTENT_H is defined (by configure).
1387
1388 * fsck.c (load_fs_info): Only try to get info about filesystems if
1389 HAVE_MNTENT_H is defined (by configure).
1390 (main): Allocate space for a new fsck_path instead of append to a
1391 statically sized buffer.
1392 (PRS): Use alloca to allocate the new path string, instead of
1393 having a fixed size buffer (which was the wrong size anyway).
1394
1395 * chattr.c (chattr_dir_proc): Use alloca to allocate space for a
1396 filename instead of using a fixed-size buffer.
1397 * lsattr.c (lsattr_dir_proc): Ditto.
1398 * mklost+fond.c (main): Calculate the actual needed size for the
1399 path buffer instead of using MAXPATHLEN (which not all systems have).
1400
1401 * badblocks.c: Only include linux include files if we have them.
1402 (flush_bufs): New function to flush a block device, optionally
1403 syncing it first. This replaces other copies of this code.
1404 (test_ro): Replace calls to ioctl with flush_bufs().
1405 (test_rw): Ditto.
1406
1407 * Makefile.in: Rewritten to conform to GNU coding standards and
1408 support separate compilation directories.
1409
Theodore Ts'of3db3561997-04-26 13:34:30 +00001410Sat Mar 11 10:59:58 1995 Theodore Y. Ts'o <tytso@localhost>
1411
1412 * mke2fs.c (main, zap_bootblock): Added new function
1413 zap_bootblock() which clears the first 512 bytes of the
1414 filesystem. This protects the filesystem from being
1415 misidentified as a MS-DOS FAT filesystem.
1416
1417 * badblocks.c (alarm_intr, test_ro, test_rw): Increase the space
1418 allocated for printing the block numbers, so that the
1419 display doesn't get corrupted when running badblocks on a
1420 very large partition.
1421
1422 * badblocks.c (do_test, test_ro, test_rw): Added missing cast to
1423 ext2_loff_t, so that when checking a large device,
1424 spurious seek errors aren't reported.
1425
1426 * mke2fs.c (count_blocks): Declare mid to be of type ext2_loff_t
1427 instead of type int, so that it works for filesystems
1428 greater than 2 GB. (Fortunately count_blocks is only
1429 called if the device does not support the BLKGETSIZE
1430 ioctl, which most do.)
1431
1432 * fsck.c (ignore): Add check to ignore filesystems with a pass
1433 number of zero. (This check was accidentally deleted at
1434 during 0.5b development.)
1435
1436Sat Dec 31 00:47:16 1994 <tytso@rsx-11.mit.edu>
1437
1438 * mke2fs.c (new_table_block, alloc_tables, PRS, main): Add a new
1439 option, -S, which only writes the superblock and group
1440 descriptors. Useful for recovering when all of the
1441 superblocks are corrupted somehow (as a last ditch
1442 measure).
1443
1444 Also, don't bother initializing the bitmap blocks in
1445 alloc_tables(), since they will be overwritten at the end
1446 anyway. (Should speed up mke2fs by a little.)
1447
1448Tue Dec 6 02:20:55 1994 <tytso@rsx-11.mit.edu>
1449
1450 * fsck.c (main): Fix stupid typo where a null inst would be freed.
1451
1452 * fsck.c (wait_one): Check WIFEXITED on status before trying to
1453 extract the exit status. In other cases, return
1454 FSCK_ERROR if the back end processor exited with a signal.
1455
1456Tue Nov 15 10:20:00 1994 Remy Card <card@bbj>
1457
1458 * tune2fs.c (main): Fixed a bug which prevented the use of the
1459 new options.
1460 Added the `w' (week) suffix recognition in the check interval.
1461
1462Sun Nov 13 15:58:48 1994 (tytso@rsx-11)
1463
1464 * fsck.c (load_fs_info): If the user has an obviously old
1465 /etc/fstab file, issue a warning message and assume that
1466 all partitions should be checked.
1467
1468Sat Nov 12 00:33:18 1994 (tytso@rsx-11)
1469
1470 * dumpe2fs.c (list_desc): Update to new inode and block bitmap
1471 structures.
1472
1473 * mke2fs.c (create_root_dir): Create the root directory owned by
1474 the effective uid.
1475
1476Mon Nov 7 22:04:37 1994 Remy Card <card@bbj>
1477
1478 * tune2fs.c (main.c): Added support for new options:
1479 -r reserved_blocks_count, -g reserved_gid, -u reserved_uid.
1480
1481Sun Aug 21 00:57:33 1994 Theodore Y. Ts'o (tytso@rt-11)
1482
1483 * fsck.c (ignore): If the pass number is 0, ignore the filesystem.
1484
1485Wed Aug 17 21:55:03 1994 Remy Card (card@bbj)
1486
1487 * badblocks.c (test_rw): Added verbose output like in the
1488 read-only test.
1489
1490 (do_test and test_rw): Use the llseek system call if available.
1491
1492 * chattr.c: Added support for new attributes.
1493
1494 * lsattr.c: Added support for long format.
1495
1496 * mke2fs.c (usage): Fixed bogus usage message.
1497
1498 (valid_offset): Use the llseek system call if available.
1499
1500Wed Aug 17 10:50:57 1994 Theodore Y. Ts'o (tytso@rt-11)
1501
1502 * mke2fs.c (handle_bad_blocks): Check to see if a bad block is
1503 where a backup superblock/group descriptor is stored. If so,
1504 print a warning message and adjust the superblock counts so that
1505 they are correct. (Otherwise, the bad block will get counted
1506 twice and the # of free blocks count will be wrong.)
1507
1508 (alloc_tables): Removed code which calcualated the free block
1509 statistics, which was moved to lib/ext2fs/initialize.c. This
1510 allows the bad block code to adjust the group descriptor
1511 statistics if necessary.