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