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