blob: ad0d3e4e73ea987b344131a2660e10bdf9d2986e [file] [log] [blame]
Theodore Ts'o024996c1997-06-17 05:38:35 +00001Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2
3 * Release of E2fsprogs 1.11
4
Theodore Ts'oda2e97f1997-06-12 04:28:07 +00005Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
6
7 * pass1.c (mark_table_blocks): Mark the superblock and group
8 descriptor blocks first, so that any conflicts between
9 these and the bitmap or inode table blocks is noticed.
10
11 * problem.c: Fix message printed out when a block or inode bitmap
12 conflicts with other fs data, has the correct group number
13 in it.
14
Theodore Ts'o7ac02a51997-06-11 18:32:35 +000015Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
16
17 * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate.
18
Theodore Ts'of635d7f1997-05-09 02:50:16 +000019Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
20
Theodore Ts'o583ccdc1997-05-09 03:06:31 +000021 * e2fsck.8.in: Fix minor typos and grammer oops found by Bill
22 Hawes (whawes@star.net).
23
Theodore Ts'of635d7f1997-05-09 02:50:16 +000024 * badblocks.c (read_bad_blocks_file): Pass the blocksize to the
25 bad blocks command so that all of the filesystem gets
26 tested in the case where the blocksize 2048 or 4096.
27
Theodore Ts'oa29f4d31997-04-29 21:26:48 +000028Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
29
30 * Release of E2fsprogs version 1.10
31
32Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
33
34 * pass1b.c (pass1b): While scanning for inodes, simply skip inodes
35 where ext2fs_get_next_inode returns the
36 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error.
37
38Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
39
40 * Release of E2fsprogs version 1.09
41
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +000042Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
43
44 * Release of E2fsprogs version 1.08
45
Theodore Ts'o521e3681997-04-29 17:48:10 +000046Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
47
48 * pass1b.c (clone_file_block): If we clone a directory, we need to
49 update the dblist entry so that we check (and correct) the
50 right directory block.
51
52Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
53
54 * pass1.c (process_block): Don't clear blocks references to
55 filesystem metadata; let pass 1B handle this case.
56
57 * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA.
58
59 * pass1b.c (pass1d): Deal with a block which is shared with
60 filesystem metadata.
61
62 * e2fsck.h: Make block_illegal_map be a global variable
63
64Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
65
66 * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super
67 feature.
68 (get_backup_sb): New function which attempts to obtain the
69 correct backup superblock (if possible).
70
71Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
72
73 * e2fsck.c (main): Check the version of the library, and warn if
74 the library is out of date; this happens generally due to
75 users who manually install e2fsprogs.
76
77 * pass1.c (pass1_get_blocks): If the passed in inode number for
78 get_blocks isn't what we're expecting pass back
79 EXT2_ET_CALLBACK_NOT_HANDLED.
80
Theodore Ts'o21c84b71997-04-29 16:15:03 +000081Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
82
83 * Release of E2fsprogs version 1.07
84
85Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
86
87 * icount.c: New file which implements an inode count abstraction.
88 This significantly reduces amount of memory needed to
89 check really large filesystems.
90
91 * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount
92 abstraction.
93
94Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
95
96 * dirinfo.c (dir_info_iter): New function which allows iteration
97 over the directories in the dir_info map.
98
99 * pass3.c (pass3, check_directory): Speed up pass 3 by iterating
100 over all directories in the dir_info structure, instead of
101 iterating all inodes looking for directories, and then
102 looking up the directories using get_dir_info().
103
104Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
105
106 * pass1.c (pass1, process_block):
107 * pass2.c (pass2): Use the ext2_dblist abstraction instead of
108 manual code to manage the directory block list information.
109
110 * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c
111 (deallocate_inode): Call the ext2 library routine
112 ext2_inode_has_valid_blocks() instead of
113 inode_has_valid_blocks().
114
115 * swapfs.c (swap_inodes): Add check so that we don't try to call
116 swap_inode_blocks unless the inode has valid blocks.
117 (Otherwise a long fast symlink might cause
118 swap_inode_blocks to erroneously get called.)
119
120Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
121
122 * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and
123 PR_2_DOT_DOT_NULL_TERM.
124
125 * pass2.c (check_dot, check_dot_dot): Make sure the new . and
126 .. entries are null-terminated, since the 2.0 kernel
127 requires this (for no good reason).
128
129Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
130
131 * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so
132 that we can recover from missing inode tables.
133
134 * dirinfo.c (get_dir_info): If there are no directories in the
135 dir_info abstraction, don't core dump (because dir_info is
136 NULL).
137
138 * e2fsck.c (main): Don't try using the backup superblocks if there
139 aren't any.
140 (check_super_block): If there are illegal inode table or
141 bitmaps, set the filesystem as being in error.
142
143Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
144
145 * pass2.c (check_dir_block): Added check to make sure that rec_len
146 is a a multiple of 4 (so that the directory entries are
147 4-byte aligned).
148
149Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
150
151 * Makefile.in (uninstall): Uninstall all programs in the PROGS
152 line.
153 (PROGS): Don't build and install the extend program by
154 default.
155
156
157Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
158
159 * pass1.c (process_inodes): Make sure the stashed_ino variable is
160 saved and restored as well.
161 (pass1): For fast sym links, skip the check_blocks
162 processing step altogether.
163
164Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
165
166 * problem.c, message.c: New files, to completely refurbish how
167 filesystem problems are reported to the user. The
168 diagnostic messages are now encoded out in an easily
169 customizable, extensible format. The messages printed out
170 in preen mode are all on one line, and contain the device
171 name.
172
173Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
174
175 * swapfs.c (swap_inodes): When swapping a filesystem, ignore
176 deleted files.
177
178 * pass1.c (pass1): Ignore missing inode table errors during the
179 scan, and just skip past those inodes.
180
181 * pass3.c (check_root): Remove root_ino argument, and assume that
182 the root inode must be EXT2_ROOT_INO. Move responsibility
183 of setting the parent of the root inode in the directory
184 inode structure to pass2().
185
186 * pass2.c (check_dir_block): Don't allow links to the root
187 directory.
188
189 * dirinfo.c (add_dir_info): Remove last argument to add_dir_info,
190 since the inode is no longer used.
191
192Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
193
194 * e2fsck.c (main): If the superblock magic number is wrong, or the
195 block group fails a sanity check, then automatically
196 restart trying to use the backup superblocks.
197
198 * pass1.c (mark_table_blocks): Make the inode tables ahead of
199 everything else; in the case where a bitmap block overlays
200 the inode table, the inode table should take precedence.
201
202 * pass2.c (maybe_clear_entry): Make the deleted/unused error
203 message fit on one line, since the error can happen during
204 a preen pass. (We eventually need to revamp the whole
205 e2fsck error reporting and prompting system, but that's a
206 job for another day.)
207
208Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
209
210 * e2fsck.c (main): Read in the list badblocks into fs->badblocks
211 for the benefit of the inode scan functions.
212
213 * pass1.c (pass1): If ext2fs_get_next_inode() returns an error
214 indicating that an inode is in a bad block, mark that
215 inode as being used, as well as in the inode "bb" map.
216
217 * pass2.c (maybe_clear_entry): New function which generalizes the
218 error cases when a directory entry needs to be cleared.
219 (check_dir_block): If an inode is in the "bb" map, offer
220 to clear the directory entry, since the inode is in a bad
221 block.
222
223 * pass4.c (pass4): If an inode is marked as used, but is is marked
224 in the "bb" map, don't process it as a disconnected inode.
225
226Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
227
228 * Release of E2fsprogs version 1.06
229
Theodore Ts'o5c576471997-04-29 15:29:49 +0000230Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
231
232 * e2fsck.c (main): Print out the version number of the shared
233 library when using the -V option.
234
235 * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for
236 consistency's sake.
237
238 * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write
239 out the backup superblocks when we know we have a valid
240 filesystem.
241
242Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
243
244 * util.c (preenhalt): Make it explicit on preenhalt that running
245 e2fsck manually means without the -a or -p flag.
246
247Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
248
249 * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode.
250 (Linux/FT actually sets the mode bits, so we have to
251 handle it specially.)
252
253 * e2fsck.c (check_if_skip): Print a message if the filesystem is
254 just dirty, so that the user knows that it's about to be
255 checked (since this will take a while).
256
257Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
258
259 * pass4.c: If a disconnected inode is zero-length, prompt to
260 delete it instead of connecting it to lost+found.
261
262Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
263
264 * Release of E2fsprogs version 1.05
265
Theodore Ts'o1e3472c1997-04-29 14:53:37 +0000266Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
267
268 * pass4.c (pass4): If the user refuses to connect an unattached
269 inode to lost+found, don't try to set i_links_count. This
270 is bad, since if the user says yes, the inode will be
271 marked as unused, which is not necessarily the right
272 thing, especially since the rest of the cleanup doesn't
273 happen here.
274
275 * pass2.c (deallocate_inode): Set inode_link_info[ino] when
276 dellocating an inode. (Not strictly necessary, but...)
277
278 * pass4.c (pass4): Add "bonehead" explanation to the "programming
279 error" message.
280
281Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
282
283 * e2fsck.c (PRS,main): Added new options -s and -S. -s will
284 byte-swap the filesystem so that it is normalized. -S
285 will byte-swap the filesystem regardless of its current
286 byte-order.
287
288 * swapfs.c: New file, which will byte-swap a filesystem.
289
290Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
291
292 * pass1.c (pass1): Change handling on files with non-zero dtime
293 and non-zero i_link_count; before we treated them as
294 deleted file per botched ext2 0.3c kernel behavior. We
295 now clear dtime instead.
296
297Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
298
299 * e2fsck.c (main): If e2fsck sets the clean bit, even if
300 nothing else is changed, make sure FSCK_NONDESTRUCT is
301 set (since after all having the filesystem set to
302 invalid is an error. :-)
303
304Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
305
306 * pass1.c (process_block): Make sure that meta data doesn't get
307 accidentally set in the dir_blocks array (which could
308 happen in some error condtions).
309
310 * pass1.c (pass1):
311 * pass2.c (process_bad_inode): Check for fragments in a
312 OS-independent fashion.
313
314Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
315
316 * e2fsck.c (check_if_skip): Close the filesystem when skipping the
317 cleanup for the filesystem.
318
319Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
320
321 * e2fsck.c: Improve corrupt_msg, so that it's less confusing.
322
Theodore Ts'o62c06f71997-04-29 14:34:47 +0000323Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
324
325 * Release of E2fsprogs version 1.04
326
327Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
328
329 * e2fsck.c (relocate_hint): Issue a hint that the user may wish to
330 try "e2fsck -b 8193" before allowing e2fsck to relocate
331 inode table blocks.
332
333 * Makefile.in (e2fsck): Build e2fsck statically or dynamically
334 depending on the option to configure. Added targets for
335 e2fsck.static and e2fsck.shared for people who want to
336 build a static or shared variant manually.
337
Theodore Ts'o7f88b041997-04-26 14:48:50 +0000338Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
339
340 * Release of E2fsprogs version 1.03
341
342Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu>
343
344 * e2fsck.c (show_stats): Don't use floating point to display
345 percentage of non-contiguous files, as different libc
346 handle result truncation differently, and this causes the
347 test suite to bomb out depending on which libc you are
348 using.
349
350 * util.c (allocate_memory): Fix error message to omit extraneous
351 %%s.
352
353Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu>
354
355 * pass4.c (pass4):
356 * pass2.c (check_dir_block):
357 * pass1.c (pass1): Add support for dynamic first inode revision.
358
359Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu>
360
361 * pass3.c (check_root): Fix spelling typo
362
363Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu>
364
365 * e2fsck.c (check_super_block): If the superblock fails certain
366 internal consistency checks, exit with a fatal error after
367 printing the "superblock is corrupt message".
368
Theodore Ts'o74becf31997-04-26 14:37:06 +0000369Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
370
371 * Release of E2fsprogs version 1.02
372
373Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu>
374
375 * pass1.c (process_block): Check to see if a file is "fragmented".
376 i.e., non-contiguous. Note that any file which is larger
377 than the block group is guaranteed to be non-contiguous.
378 We may want to use a different hueristic for deciding
379 whether or not a file is "fragmented".
380
381 * e2fsck.c (show_stats): Print statistics of how many
382 non-contiguous files are on the system.
383
384Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu>
385
386 * badblocks.c (read_bad_blocks_file, test_disk): Fold
387 functionality of test_disk() (which runs badblocks) into
388 read_bad_blocks_file(); test_disk() now calls
389 read_bad_blocks_file() with a NULL bad_blocks_file
390 argument.
391
392Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu>
393
394 * e2fsck.c (check_mount): Use #if defined(__linux__) instead of
395 #if defined(linux). The latter won't work if we're
396 compiling -ansi.
397
Theodore Ts'o297f47a1997-04-26 14:25:20 +0000398Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu>
399
400 * e2fsck.c (check_mount): For Linux systems, the check to see if
401 the root is mounted read-only has to be done for all
402 filesystems, not just for the root filesystem, due to the
403 way that some /etc/rc scripts are set up.
404
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000405Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu>
406
407 * Makefile.in (install): Strip programs when they are installed.
408 (e2fsck): Build e2fsck statically.
409
410Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu>
411
412 * util.c (preenhalt): Preenhalt now takes an argument, which is an
413 ext2fs_filsys; this allows it to set the EXT2_ERROR_FS
414 flag in the superblock in cases where preenhalt is called.
415 All calls to preenhalt() were changed to either
416 preenhalt(fs) or preenhalt(NULL) in a few cases where the
417 fs pointer was not available. (Most notable, for block
418 read/write errors.)
419
420Mon Sep 4 21:41:03 1995 Remy Card <card@bbj>
421
422 * ehandler.c:
423 util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it.
424
425Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu>
426
427 * e2fsck.c (show_stats): Show statistics about how many inodes
428 have indirect, doubly indirect, and triply indirect
429 blocks. Allow up to 8 digits for statistics, instead of
430 merely 6, so things look pretty for large filesystems.
431
432 * pass1.c (pass1): Keep statistics about indirect, doubly
433 indirect, and triply indirect blocks.
434
435 * pass1.c (unwind_pass1): Clear the above statistics when unwinding
436 pass 1.
437
438Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl>
439
440 * util.c, ehandler.c: Move #include of <sys/resource.h> after
441 #include of "e2fsck.h", since sys/resource.h may depend on
442 sys/time.h, which is #included in e2fsck.h.
443
444Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu>
445
446 * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted()
447 function to determine if the device is mounted.
448
449 * e2fsck.c (main): Add better error messages if ext2fs_open()
450 fails.
451
452Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu>
453
454 * pass1.c (check_blocks): If we're clearing a directory, clear
455 pb.is_dir so we don't do the following check of making
456 sure the directory size matches; this is pointless, since
457 we've already cleared the inode.
458
459Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
460
461 * pass1.c (bad_primary_block): New function, called by
462 process_bad_block, which explains the facts of life to the
463 user when a block in the primary superblock or primary
464 group descriptors is bad.
465
466 * pass2.c (check_dot): Handle the case where the first directory
467 entry is used, but not ".".
468
469 * pass2.c (check_dotdot): Handle the case where the second directory
470 entry is used, but is not "..".
471
472Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
473
474 * e2fsck.c (check_super_block): Get the size of the physical
475 device and if it is smaller than the reported size of the
476 filesystem, report an error.
477
478Sat Aug 12 03:39:18 1995 Remy Card <card@bbj>
479
480 * e2fsck.c (check_if_skip): Print the number of allocated files and
481 blocks on clean filesystems.
482
483Fri Aug 11 14:15:36 1995 Remy Card <card@bbj>
484
485 * e2fsck.8: Updated date and version number.
486
487Thu Aug 10 14:26:01 1995 Remy Card <card@bbj>
488
489 * pass1.c (check_blocks): Check that directory size matches *exactly*
490 the count of allocated blocks.
491
492Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl>
493
494 * pass1b.c (pass1d): Free the shared[] array when we're done with
495 it to avoid a memory leak.
496
497 * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the
498 block_dup_map.
499
500 * pass2.c (process_bad_inode): When clearing the inode, make sure
501 the pathname is freed, to prevent a memory leak.
502
503 * pass5.c (check_inode_bitmaps): Free free_array and dir_array
504 when we're finished with them.
505 (check_block_bitmaps): Free free_array when we're finished
506 with them.
507
508 * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when
509 linking the executable.
510
511 * pass2.c (process_bad_inode): Even on OS's that don't support the
512 fragment fields, make sure the Linux equivalent fields are
513 set to zero. If an OS wants to reuse these fields, which
514 is probably a bad idea (although we may get desperate in
515 the future) this code will have to be changed.
516
517 * pass1.c (dir_block_cmp): If the block numbers are equal, compare
518 on the inode field, and then blockcnt field. This is just
519 to keep the ordering of dir_blocks the same on all
520 platforms when there are more than on missing directory
521 blocks, which are indicated directories with holes, which
522 are indicated with the block number being set to zero.
523
524Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
525
526 * pass1.c (check_blocks, process_block): check_blocks() modified
527 to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if
528 the inode is a directory. process_block() now checks to
529 see if a directory has a "hole", or missing block. If so,
530 this fact is recorded in the directory block list so that
531 the problem can be resolved in pass #2.
532
533 * pass2.c (allocate_dir_block): Added allocate_dir_block() to
534 allocate new blocks for directories with "holes". Called
535 out of check_dir_block if a block in the directory block
536 list is zero.
537
538 * pass3.c (get_lost_and_found): Move location of free(block) to
539 prevent possible memory leak.
540
541Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
542
543 * pass2.c (check_dir_block): Use a automatic, fixed-saize array
544 instead of alloca() --- alloca is not portable! Check to
545 make sure the filename is not longer than EXT2_NAME_LEN,
546 and offer to fix it by truncating it, since it should
547 never happen.
548
549 * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is
550 not portable!! In any case putenv() in some systems must
551 take a static character array or malloc()'ed memory;
552 passing memory allocated using alloca() to putenv() is not
553 advisable.
554
555 * pass2.c (check_dot, check_dotdot): Use malloc() instead of
556 alloca() --- alloca() is not portable!!!
557
558Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu>
559
560 * pass1b.c (pass1c):
561 * pass3.c (check_root, get_lost_and_found):
562 * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block
563 to read/write the directory block.
564
565Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu>
566
567 * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to
568 make sure VMIN and VTIME are set correct.
569
570Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu>
571
572 * pass1.c (mark_block_used): Change to be an inline function.
573 Assume that the block validity checks are already done,
574 and use the fast variant of the bitmap functions.
575
576Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu>
577
578 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the
579 bounds of the bitmaps in advance, and then use the fast
580 variant of e2fs_test_{block,inode}_bitmap.
581
582 * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since
583 the bounds checking has already been done earlier.
584
585Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu>
586
587 * pass1.c (pass1): Allocate and free the block_illegal_map, which
588 is used for shortcut processing in process_block.
589 (mark_table_blocks): Initialize block_illegal_map with the
590 filesystem blocks.
591 (describe_illegal_block): New helper function that
592 describes why a block is illegal.
593 (process_block): Use block_illegal_map as a shortcut
594 to determine whether a block is bad. Use
595 describe_illegal_block to print out why the block is illegal.
596
597Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl)
598
599 * flushb.c: Don't include <linux/fs.h> if it doesn't exist.
600
601 * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or
602 <mntent.h> if they don't exist. (Mostly so that "make
603 depend" works.)
604
605 * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if
606 it exists).
607
608 * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't
609 exist.
610
611Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
612
613 * pass2.c (process_bad_inode, check_for_zero_long,
614 check_for_zero_char): Change long to u32, and char to u8.
615
616Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
617
618 * util.c (inode_has_valid_blocks):
619 * pass2.c (process_bad_inode):
620 * pass1.c (pass1, check_blocks, pass1_check_directory): Use
621 LINUX_S_IS* instead of S_IS*.
622
623 * e2fsck.h: Don't #include <sys/stat.h>
624
625 * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although
626 this program is pretty much useless if BLKFLSBUF isn't
627 supported.)
628
629 * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is
630 used.
631
632Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
633
634 * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca
635 to allocate space for file names instead of using fixed size buffers.
636 (process_bad_inode): Only check inode frag fields if
637 HAVE_EXT2_FRAGS is defined (by configure).
638 * pass1.c (pass1): Only check the inode frag fields if
639 HAVE_EXT2_FRAGS is defined (by configure).
640
641 * e2fsck.c (check_mount): Only check for a mounted filesystem if
642 HAVE_MNTENT_H is defined (by configure).
643 (PRS): Use alloca to allocate the new path string, instead of
644 having a fixed size buffer (which was the wrong size anyway).
645 (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl
646 is defined.
647
648 * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is
649 defined (by configure).
650
651 * Makefile.in: Rewritten to conform to GNU coding standards and
652 support separate compilation directories.
653
654Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr>
655
656 * pass1.c (pass1): Test the mode in reserved inodes (must be zero).
657
Theodore Ts'of3db3561997-04-26 13:34:30 +0000658Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost>
659
660 * pass1.c (unwind_pass1): Clear the file type statistics counter
661 when pass 1 needs to be restarted from scratch.
662
663 * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were
664 being reallocated to blocks in the next block group,
665 instead of the current block grup.
666
667 * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever
668 inode.i_links_count is set.
669
670Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11)
671
672 * pass1.c (process_block): Add checks for if the block is
673 trepassing on a superblock or group descriptor table.
674
675Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu>
676
677 * main.c (corrupt_msg): Extend the message which is printed out
678 when the superblock is corrupt, to include the suggestion
679 of using the -b option to specify an alternate superblock.
680
681Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11)
682
683 * badblocks.c (read_bad_blocks_file): If we are adding or
684 replacing bad blocks in the bad blocks inode, sanity check
685 the bad block inode first, and clear out any illegal blocks.
686
687 * pass2.c (check_name): Don't bomb out if the attempt to get the
688 pathname of the containing directory returns an error; the
689 directory may be too badly damaged to expect that
690 ext2fs_get_pathname will always succeed. Use "???" if the
691 pathname can't be obtained (it's only for a printf to the
692 user anyway).
693
694 The name of the containing directory and the bad filename
695 were incorrectly interchanged in the user message. Fixed.
696
697 * pass2.c (check_name, check_dir_block): Use a common static
698 string for the unknown pathname.
699
700Mon Nov 7 22:30:54 1994 Remy Card <card@bbj>
701
702 * Fixed lots of printf formats to make sure that block and inode
703 numbers are printed as unsigned integers.
704
705Mon Oct 24 14:10:46 1994 (tytso@rsx-11)
706
707 * pass5.c (check_block_end): Fix calculation of how the last block
708 in the block bitmap should be calculated.
709
710Wed Sep 7 10:01:13 1994 (tytso@rsx-11)
711
712 * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to
713 be an ext2fs_inode_bitmap, and free it properly.
714
715 * e2fsck.h
716 * e2fsck.c (main): Folded in Remy Card's changes to add a revision
717 level to the superblock.
718
719Wed Aug 17 22:00:20 1994 Remy Card (card@bbj)
720
721 * e2fsck.c (usage): Fixed bogus usage message.
722
723Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11)
724
725 * pass1.c (process_bad_block): Fixed bug so that blocks in the
726 backup superblocks and group descriptors are handled gracefully.
727