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