blob: 61d9d1141df9273664e05f92130729ccd13e26a0 [file] [log] [blame]
Theodore Ts'o818180c1998-06-27 05:11:14 +000011998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
2
3 * unix.c (e2fsck_update_progress): Remove unused variables.
4
Theodore Ts'o9d1bd3d1998-06-10 20:45:22 +000051998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
6
7 * pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
8 collision with LFS API.
9
10 * pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is
11 properly initialized.
12 (e2fsck_pass1): Don't allow the the boot loader inode to
13 be a directory (clear the inode mode field if so).
14
Theodore Ts'oefac9a11998-05-07 05:02:00 +0000151998-05-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
16
17 * unix.c (PRS): Added new option -C, which causes e2fsck to print
18 progress updates so that callers can keep track of the
19 completion progress of e2fsck. Designed for use by
20 progress, except for -C 0, which prints a spinning report
21 which may be useful for some users.
22
23 * pass5.c (e2fsck_pass5): Use a finer-grained progress reporting
24 scheme (useful for larger filesystems).
25
26 * e2fsck.h: Add progress_fd and progress_pos, for use by the Unix
27 progress reporting functions.
28
Theodore Ts'o4c77fe51998-04-30 17:35:59 +0000291998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
30
31 * pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the
32 appropriate return type for comparison functions for qsort.
33
34 * e2fsck.h: Add #ifdef protection for unistd.h
35
36 * super.c: Remove header files already included by e2fsck.h
37
Theodore Ts'o76f875d1998-04-27 01:41:13 +0000381998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
39
40 * dirinfo.c (e2fsck_add_dir_info): Update function to pass the old
41 size of the memory to be resized to ext2fs_resize_mem().
42
Theodore Ts'o7e44f241998-04-01 03:16:29 +0000431998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
44
45 * Makefile.in: Change to use new installation directory variables
46 convention. Fix uninstall rules to take $(DESTDIR) into
47 account. Remove cat8dir from the installdirs target,
48 since modern man package don't necessarily put the cat
49 directory in /usr/man/cat?.
50
Theodore Ts'o17dba281998-03-30 01:16:26 +0000511998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
52
53 * super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an
54 extern in e2fsck.h to prevent -Wall warnings.
55
56 * pass4.c (e2fsck_pass4): Remove unused variable 'j'.
57
581998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
59
60 * super.c (check_super_block): Fix broken superblock sanity check
61 when calculating blocks_per_group if s_log_frag_size !=
62 s_log_block_size. Since we don't support fragments, this
63 isn't a bug deal, but it's good to get it fixed.
64
Theodore Ts'o246501c1998-03-24 16:22:38 +0000651998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
66
67 * unix.c: Fix bug in check of feature set, to make sure we can
68 really fix this filesystem.
69
70 * problem.h: Make blkcount type to be of type blkcnt_t. Make the
71 num field be a 64 bit type. Add the problem code
72 PR_1_FEATURE_LARGE_FILES
73
74 * problem.c: Add table entry for the problem code
75 PR_1_FEATURE_LARGE_FILES.
76
77 * pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only
78 a problem for directory inodes. (Since it is also
79 i_size_high now.) If there are no large_files, then
80 clear the LARGE_FLAG feature flag. If there are
81 large_files, but the LARGE_FLAG feature flag is not set,
82 complain and offer to fix it.
83 (check_blocks): Add support to deal with non-directory
84 inodes that have i_size_high set (i.e., large_files).
85 Don't give an error if a directory has preallocated
86 blocks, to support the DIR_PREALLOC feature.
87 (process_block, process_bad_block): The blockcnt variable
88 is a type of blkcnt_t, for conversion to the new
89 block_iterate2.
90
91 * pass2.c (process_bad_inode): A non-zero i_dir_acl field is only
92 a problem for directory inodes. (Since it is also
93 i_size_high now.)
94
95 * message.c (expand_inode_expression): Print a 64-bits of the
96 inode size for non-directory inodes. (Directory inodes
97 can only use a 32-bit directory acl size, since
98 i_size_high is shared with i_dir_acl.) Add sanity check
99 so that trying to print out the directory acl on a
100 non-directory inode will print zero.
101 (expand_percent_expression): %B and %N, which print
102 pctx->blkcount and pctx->num, can now be 64 bit
103 variables. Print them using the "%lld" format if
104 EXT2_NO_64_TYPE is not defined.
105
106 * e2fsck.h: Add the large_flagsfield to the e2fsck context.
107
108 * e2fsck.c (e2fsck_reset_context): Clear the large_flags
109 field.
110
Theodore Ts'ob6f79831998-03-09 13:10:37 +0000111Sun Mar 8 23:08:08 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
112
113 * pass3.c (fix_dotdot_proc):
114 * pass2.c (check_dot, check_dotdot, check_name, check_dir_block):
115 * message.c (expand_dirent_expression): Mask off the high eight
116 bits of the directory entry's name_len field, so that it
117 can be used for other purposes.
118
Theodore Ts'o2df1f6a1998-02-27 05:03:48 +0000119Fri Feb 27 00:01:39 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
120
121 * e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't
122 include EXT2_FLAG_RESTART anymore, we need to adjust this
123 routine so that it *does* return in the case of it seeing
124 EXT2_FLAG_RESTART.
125
126 * pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group
127 done callback function, which may set context abort
128 flags. So we need to test the context abort flags after
129 we call ext2_get_next_inode().
130 (process_inodes): If we abort due out of process_inodes,
131 do a clean exit by breaking out of the for loop instead of
132 just returning.
133
134 * e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be
135 considered a SIGNAL mask (i.e., requiring an immediate
136 abort of processing to restart). FLAG_RESTART just means
137 that we want to restart once pass 1 is complete.
138
Theodore Ts'oa02ce9d1998-02-24 20:22:23 +0000139Tue Feb 24 15:19:40 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
140
141 * Change the progress function to return an integer; if returns 1,
142 then the progress function is expected to have set the
143 e2fsck context flag signalling a user abort, and the
144 caller should also initiate a user abort.
145
Theodore Ts'o63c49691998-02-20 05:24:59 +0000146Tue Feb 17 19:03:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
147
148 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call
149 end_problem_latch() unless there was actually a problem
150 latched. Simplifies semantics of the latch processing.
151
Theodore Ts'o43139321998-02-16 22:34:46 +0000152Mon Feb 16 17:31:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
153
154 * e2fsck.h: Add new field, priv_data to the e2fsck context
155 structure. It should be used by callers of the e2fsck
156 functions only, and not by anything in e2fsck itself.
157
158Mon Feb 7 17:31:04 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
159
160 * super.c: Instead of call ext2fs_get_device_size(), define and call
161 e2fsck_get_device_size(). (This function may be stubbed
162 out in special versions of e2fsck.)
163
164 * pass3.c, pass4.c: Remove extra calls to the progress function
165 that weren't needed.
166
167 * mke2fs.8.in: Update man page to note that the format of the bad
168 block file is the same as the one generated by badblocks.
169
Theodore Ts'o54be2cc1998-02-01 12:58:48 +0000170Sun Feb 1 07:57:14 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
171
172 * dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed.
173
174 * e2fsck.h: Include <time.h> since it is needed
175
176 * super.c: If EXT2_SKIP_UUID is defined, then skip the UUID
177 processing.
178
Theodore Ts'o24dd4021998-02-01 00:16:40 +0000179Tue Jan 20 15:37:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
180
181 * unix.c (main): In the case where the filesystem revision is too
182 high, print the message about the superblock possibly
183 being corrupt.
184
185 * e2fsck.8.in: Add expanded comments about how the -b option
186 works.
187
Theodore Ts'o54dc7ca1998-01-19 14:50:49 +0000188Sat Jan 17 13:02:16 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
189
190 * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
191 the ext2-specific header files are in a flat directory.
192
193 * dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
194 super.c, swapfs.c, unix.c: Explicitly cast all assignments
195 from void * to be compatible with C++.
196
197Tue Jan 6 11:30:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
198
199 * unix.c (sync_disk): Remove sync_disk and calls to that function,
200 since ext2fs_close() now takes care of this.
201
202Mon Dec 29 14:45:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
203
204 * pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
205 ehandler.c, unix.c: Change use of private to be priv_data,
206 to avoid C++ reserved name clash.
207
Theodore Ts'o5be8dc21997-12-01 18:24:10 +0000208Fri Nov 28 09:30:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
209
210 * dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead
211 of e2fsck_get_num_dirs, which has been removed.
212
213Tue Nov 25 15:54:35 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
214
215 * Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want
216 to compile and install flushb.
217
Theodore Ts'o7fdfabd1997-11-24 11:51:17 +0000218Mon Nov 24 06:48:00 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
219
220 * pass1.c (e2fsck_pass1_check_device_inode): For now, only check
221 to make sure the extra i_blocks in a device are cleared if
222 the immutable flag is set.
223
224 * util.c (print_resource_track): Fix typo which caused the
225 time/resource tracking to print "Pass 1 :" instead of
226 "Pass 1: ".
227
Theodore Ts'ob8647fa1997-11-20 21:52:43 +0000228Thu Nov 20 16:02:23 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
229
230 * pass3.c (expand_directory): Fix bug which could cause core dump
231 when expanding the directory, and the bitmaps hadn't yet
232 been read in. Also, only use ext2fs_write_dir_block when
233 writing a directory block, not when writing out a fresh
234 indirect block.
235
Theodore Ts'o8039c481997-11-19 21:39:13 +0000236Wed Nov 19 16:15:44 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
237
238 * pass1.c (process_bad_block): Fix bug where first_block wasn't
239 getting incremented, which caused user to get a
240 "Programming error?" warning if there was a bad block in a
241 non-primary superblock/group_descriptor. Also fixed
242 another bug so that ext2fs_bg_has_super() is consulted, to
243 avoid problems when using a filesystem with the
244 sparse_groups option set and there are bad blocks at the
245 beginning of a group which doesn't have a superblock.
246
Theodore Ts'of8188ff1997-11-14 05:23:04 +0000247Thu Nov 6 16:10:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
248
249 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the
250 progress indicator function.
251
252 * pass1.c (scan_callback): Add call to the progress feedback
253 function (if it exists).
254
255Tue Nov 4 09:45:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
256
257 * super.c (check_super_block): Skip the device size check if the
258 get_device_size returns EXT2_EXT_UNIMPLEMENTED.
259
260 * iscan.c (main): Don't use fatal_error() anymore.
261
262 * pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of
263 calling fatal_error(0).
264
265 * problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
266 PR_3_NO_ROOT_INODE_ABORT): New problem codes.
267
268 * problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
269
270 * problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
271
272 * problemP.h: New file which separates out the private fix_problem
273 data structures.
274
275 * util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
276 swapfs.c util.c: allocate_memory() now takes a e2fsck
277 context as its first argument, and rename it to be
278 e2fsck_allocate_memory().
279
Theodore Ts'o08b21301997-11-03 19:42:40 +0000280Mon Nov 3 14:35:29 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
281
Theodore Ts'o68227541997-11-04 04:25:22 +0000282 * unix.c (main): Add a special case check for the error code EROFS
283 and display an appropriate error message for this case.
284
Theodore Ts'o08b21301997-11-03 19:42:40 +0000285 * [lots of files]: Change ext2fs_read_inode, ext2fs_write_inode
286 to take the e2fsck context as their first argument.
287 Change dir_info.c routines to take an e2fsck_context,
288 renamed them to start with e2fsck_ to avoid namespace
289 issues, and changed them to store the directory
290 information inside the e2fsck context.
291 Added e2fsck_run() which calls all of the e2fsck passes in
292 the correct order, and which handles the return of abort
293 codes. Added abort processing, both via setjmp/longjmp
294 and via flags in the e2fsck context. Use a flag in the
295 e2fsck context instead of the restart_e2fsck global
296 variable. Change uses of free and malloc to
297 ext2fs_free_mem and ext2fs_get_mem.
298
Theodore Ts'o291c9041997-10-31 06:17:08 +0000299Fri Oct 31 01:12:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
300
301 * pass1.c, pass3.c: Rename new error codes to _ET_ in them for
302 consistency.
303
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000304Sat Oct 25 00:10:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
305
306 * pass3.c (get_lost_and_found): Check error return of
307 EXT2_FILE_NOT_FOUND instead of ENOTDIR
308
309 * pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY
310 instead of ENOTDIR
311
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000312Fri Oct 24 00:12:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
313
Theodore Ts'o519149f1997-10-25 03:49:49 +0000314 * unix.c (PRS): Make the variable which getopt returns into be
315 an int, so that it won't lose on platforms where char is
316 unsigned.
317
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000318 * pass1b.c (clone_file): Fix bug in error reporting in the case
319 where cs.errcode is non-zero.
320
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000321Sun Oct 19 21:12:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
322
Theodore Ts'o8bf191e1997-10-20 01:38:32 +0000323 * pass*.c, super.c, unix.c, util.c, e2fsck.h: Place #ifdef
324 RESOURCE_TRACK around code which uses init_resource_track
325 and print_resource_track. (Not all systems have timeval)
326
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000327 * super.c: Remove excess #includes which are not necessary.
328
329 * e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H
330
Theodore Ts'o1b6bf171997-10-03 17:48:10 +0000331Fri Oct 3 13:40:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
332
333 * pass*.c, super.c: Massive changes to avoid using printf and
334 com_err routines. All diagnostic messages are now routed
335 through the fix_problem interface.
336
337Sat Sep 6 17:13:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
338
339 * pass2.c (check_dir_block): Check for duplicate '.' and '..'
340 entries.
341
342 * problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and
343 PR_2_DUP_DOT_DOT.
344
345Tue Sep 2 09:04:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
346
347 * problem.c: Added new problem codes for some of the
348 superblock corruption checks, and for the pass header
349 messages. ("Pass 1: xxxxx")
350
351 * util.c (print_resource_track): Now takes a description
352 argument.
353
354Mon Aug 25 10:23:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
355
356 * super.c, unix.c, e2fsck.c: New files to separate out the
357 operating-specific operations out from e2fsck.c.
358 e2fsck.c now contains the global e2fsck context management
359 routines, and super.c contains the "pass 0" initial
360 validation of the superblock and global block group
361 descriptors.
362
363 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate
364 (nearly) all global variables and moved them to the e2fsck
365 context structure.
366
367 * problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT,
368 PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS,
369 PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK
370
Theodore Ts'o7cf73dc1997-08-14 17:17:16 +0000371Thu Aug 14 10:55:21 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
372
373 * message.c: Add compression for the word "Illegal"
374
375 * problem.c: Added entries for PR_2_BAD_CHAR_DEV and
376 PR_2_BAD_BLOCK_DEV
377
378Wed Aug 13 09:55:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
379
380 * pass1.c (pass1, check_device_inode), pass2.c
381 (process_bad_inode): Use a more stringent test for a valid
382 device.
383
Theodore Ts'oa47b66e1997-08-10 23:02:21 +0000384Sun Aug 10 18:58:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
385
386 * e2fsck.c (check_mount): Add stronger warning message about the
387 perils of running e2fsck on a mounted filesystem.
388
Theodore Ts'o024996c1997-06-17 05:38:35 +0000389Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
390
391 * Release of E2fsprogs 1.11
392
Theodore Ts'oda2e97f1997-06-12 04:28:07 +0000393Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
394
395 * pass1.c (mark_table_blocks): Mark the superblock and group
396 descriptor blocks first, so that any conflicts between
397 these and the bitmap or inode table blocks is noticed.
398
399 * problem.c: Fix message printed out when a block or inode bitmap
400 conflicts with other fs data, has the correct group number
401 in it.
402
Theodore Ts'o7ac02a51997-06-11 18:32:35 +0000403Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
404
405 * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate.
406
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000407Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
408
Theodore Ts'o583ccdc1997-05-09 03:06:31 +0000409 * e2fsck.8.in: Fix minor typos and grammer oops found by Bill
410 Hawes (whawes@star.net).
411
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000412 * badblocks.c (read_bad_blocks_file): Pass the blocksize to the
413 bad blocks command so that all of the filesystem gets
414 tested in the case where the blocksize 2048 or 4096.
415
Theodore Ts'oa29f4d31997-04-29 21:26:48 +0000416Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
417
418 * Release of E2fsprogs version 1.10
419
420Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
421
422 * pass1b.c (pass1b): While scanning for inodes, simply skip inodes
423 where ext2fs_get_next_inode returns the
424 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error.
425
426Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
427
428 * Release of E2fsprogs version 1.09
429
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000430Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
431
432 * Release of E2fsprogs version 1.08
433
Theodore Ts'o521e3681997-04-29 17:48:10 +0000434Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
435
436 * pass1b.c (clone_file_block): If we clone a directory, we need to
437 update the dblist entry so that we check (and correct) the
438 right directory block.
439
440Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
441
442 * pass1.c (process_block): Don't clear blocks references to
443 filesystem metadata; let pass 1B handle this case.
444
445 * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA.
446
447 * pass1b.c (pass1d): Deal with a block which is shared with
448 filesystem metadata.
449
450 * e2fsck.h: Make block_illegal_map be a global variable
451
452Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
453
454 * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super
455 feature.
456 (get_backup_sb): New function which attempts to obtain the
457 correct backup superblock (if possible).
458
459Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
460
461 * e2fsck.c (main): Check the version of the library, and warn if
462 the library is out of date; this happens generally due to
463 users who manually install e2fsprogs.
464
465 * pass1.c (pass1_get_blocks): If the passed in inode number for
466 get_blocks isn't what we're expecting pass back
467 EXT2_ET_CALLBACK_NOT_HANDLED.
468
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000469Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
470
471 * Release of E2fsprogs version 1.07
472
473Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
474
475 * icount.c: New file which implements an inode count abstraction.
476 This significantly reduces amount of memory needed to
477 check really large filesystems.
478
479 * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount
480 abstraction.
481
482Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
483
484 * dirinfo.c (dir_info_iter): New function which allows iteration
485 over the directories in the dir_info map.
486
487 * pass3.c (pass3, check_directory): Speed up pass 3 by iterating
488 over all directories in the dir_info structure, instead of
489 iterating all inodes looking for directories, and then
490 looking up the directories using get_dir_info().
491
492Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
493
494 * pass1.c (pass1, process_block):
495 * pass2.c (pass2): Use the ext2_dblist abstraction instead of
496 manual code to manage the directory block list information.
497
498 * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c
499 (deallocate_inode): Call the ext2 library routine
500 ext2_inode_has_valid_blocks() instead of
501 inode_has_valid_blocks().
502
503 * swapfs.c (swap_inodes): Add check so that we don't try to call
504 swap_inode_blocks unless the inode has valid blocks.
505 (Otherwise a long fast symlink might cause
506 swap_inode_blocks to erroneously get called.)
507
508Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
509
510 * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and
511 PR_2_DOT_DOT_NULL_TERM.
512
513 * pass2.c (check_dot, check_dot_dot): Make sure the new . and
514 .. entries are null-terminated, since the 2.0 kernel
515 requires this (for no good reason).
516
517Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
518
519 * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so
520 that we can recover from missing inode tables.
521
522 * dirinfo.c (get_dir_info): If there are no directories in the
523 dir_info abstraction, don't core dump (because dir_info is
524 NULL).
525
526 * e2fsck.c (main): Don't try using the backup superblocks if there
527 aren't any.
528 (check_super_block): If there are illegal inode table or
529 bitmaps, set the filesystem as being in error.
530
531Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
532
533 * pass2.c (check_dir_block): Added check to make sure that rec_len
534 is a a multiple of 4 (so that the directory entries are
535 4-byte aligned).
536
537Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
538
539 * Makefile.in (uninstall): Uninstall all programs in the PROGS
540 line.
541 (PROGS): Don't build and install the extend program by
542 default.
543
544
545Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
546
547 * pass1.c (process_inodes): Make sure the stashed_ino variable is
548 saved and restored as well.
549 (pass1): For fast sym links, skip the check_blocks
550 processing step altogether.
551
552Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
553
554 * problem.c, message.c: New files, to completely refurbish how
555 filesystem problems are reported to the user. The
556 diagnostic messages are now encoded out in an easily
557 customizable, extensible format. The messages printed out
558 in preen mode are all on one line, and contain the device
559 name.
560
561Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
562
563 * swapfs.c (swap_inodes): When swapping a filesystem, ignore
564 deleted files.
565
566 * pass1.c (pass1): Ignore missing inode table errors during the
567 scan, and just skip past those inodes.
568
569 * pass3.c (check_root): Remove root_ino argument, and assume that
570 the root inode must be EXT2_ROOT_INO. Move responsibility
571 of setting the parent of the root inode in the directory
572 inode structure to pass2().
573
574 * pass2.c (check_dir_block): Don't allow links to the root
575 directory.
576
577 * dirinfo.c (add_dir_info): Remove last argument to add_dir_info,
578 since the inode is no longer used.
579
580Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
581
582 * e2fsck.c (main): If the superblock magic number is wrong, or the
583 block group fails a sanity check, then automatically
584 restart trying to use the backup superblocks.
585
586 * pass1.c (mark_table_blocks): Make the inode tables ahead of
587 everything else; in the case where a bitmap block overlays
588 the inode table, the inode table should take precedence.
589
590 * pass2.c (maybe_clear_entry): Make the deleted/unused error
591 message fit on one line, since the error can happen during
592 a preen pass. (We eventually need to revamp the whole
593 e2fsck error reporting and prompting system, but that's a
594 job for another day.)
595
596Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
597
598 * e2fsck.c (main): Read in the list badblocks into fs->badblocks
599 for the benefit of the inode scan functions.
600
601 * pass1.c (pass1): If ext2fs_get_next_inode() returns an error
602 indicating that an inode is in a bad block, mark that
603 inode as being used, as well as in the inode "bb" map.
604
605 * pass2.c (maybe_clear_entry): New function which generalizes the
606 error cases when a directory entry needs to be cleared.
607 (check_dir_block): If an inode is in the "bb" map, offer
608 to clear the directory entry, since the inode is in a bad
609 block.
610
611 * pass4.c (pass4): If an inode is marked as used, but is is marked
612 in the "bb" map, don't process it as a disconnected inode.
613
614Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
615
616 * Release of E2fsprogs version 1.06
617
Theodore Ts'o5c576471997-04-29 15:29:49 +0000618Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
619
620 * e2fsck.c (main): Print out the version number of the shared
621 library when using the -V option.
622
623 * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for
624 consistency's sake.
625
626 * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write
627 out the backup superblocks when we know we have a valid
628 filesystem.
629
630Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
631
632 * util.c (preenhalt): Make it explicit on preenhalt that running
633 e2fsck manually means without the -a or -p flag.
634
635Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
636
637 * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode.
638 (Linux/FT actually sets the mode bits, so we have to
639 handle it specially.)
640
641 * e2fsck.c (check_if_skip): Print a message if the filesystem is
642 just dirty, so that the user knows that it's about to be
643 checked (since this will take a while).
644
645Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
646
647 * pass4.c: If a disconnected inode is zero-length, prompt to
648 delete it instead of connecting it to lost+found.
649
650Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
651
652 * Release of E2fsprogs version 1.05
653
Theodore Ts'o1e3472c1997-04-29 14:53:37 +0000654Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
655
656 * pass4.c (pass4): If the user refuses to connect an unattached
657 inode to lost+found, don't try to set i_links_count. This
658 is bad, since if the user says yes, the inode will be
659 marked as unused, which is not necessarily the right
660 thing, especially since the rest of the cleanup doesn't
661 happen here.
662
663 * pass2.c (deallocate_inode): Set inode_link_info[ino] when
664 dellocating an inode. (Not strictly necessary, but...)
665
666 * pass4.c (pass4): Add "bonehead" explanation to the "programming
667 error" message.
668
669Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
670
671 * e2fsck.c (PRS,main): Added new options -s and -S. -s will
672 byte-swap the filesystem so that it is normalized. -S
673 will byte-swap the filesystem regardless of its current
674 byte-order.
675
676 * swapfs.c: New file, which will byte-swap a filesystem.
677
678Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
679
680 * pass1.c (pass1): Change handling on files with non-zero dtime
681 and non-zero i_link_count; before we treated them as
682 deleted file per botched ext2 0.3c kernel behavior. We
683 now clear dtime instead.
684
685Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
686
687 * e2fsck.c (main): If e2fsck sets the clean bit, even if
688 nothing else is changed, make sure FSCK_NONDESTRUCT is
689 set (since after all having the filesystem set to
690 invalid is an error. :-)
691
692Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
693
694 * pass1.c (process_block): Make sure that meta data doesn't get
695 accidentally set in the dir_blocks array (which could
696 happen in some error condtions).
697
698 * pass1.c (pass1):
699 * pass2.c (process_bad_inode): Check for fragments in a
700 OS-independent fashion.
701
702Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
703
704 * e2fsck.c (check_if_skip): Close the filesystem when skipping the
705 cleanup for the filesystem.
706
707Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
708
709 * e2fsck.c: Improve corrupt_msg, so that it's less confusing.
710
Theodore Ts'o62c06f71997-04-29 14:34:47 +0000711Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
712
713 * Release of E2fsprogs version 1.04
714
715Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
716
717 * e2fsck.c (relocate_hint): Issue a hint that the user may wish to
718 try "e2fsck -b 8193" before allowing e2fsck to relocate
719 inode table blocks.
720
721 * Makefile.in (e2fsck): Build e2fsck statically or dynamically
722 depending on the option to configure. Added targets for
723 e2fsck.static and e2fsck.shared for people who want to
724 build a static or shared variant manually.
725
Theodore Ts'o7f88b041997-04-26 14:48:50 +0000726Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
727
728 * Release of E2fsprogs version 1.03
729
730Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu>
731
732 * e2fsck.c (show_stats): Don't use floating point to display
733 percentage of non-contiguous files, as different libc
734 handle result truncation differently, and this causes the
735 test suite to bomb out depending on which libc you are
736 using.
737
738 * util.c (allocate_memory): Fix error message to omit extraneous
739 %%s.
740
741Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu>
742
743 * pass4.c (pass4):
744 * pass2.c (check_dir_block):
745 * pass1.c (pass1): Add support for dynamic first inode revision.
746
747Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu>
748
749 * pass3.c (check_root): Fix spelling typo
750
751Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu>
752
753 * e2fsck.c (check_super_block): If the superblock fails certain
754 internal consistency checks, exit with a fatal error after
755 printing the "superblock is corrupt message".
756
Theodore Ts'o74becf31997-04-26 14:37:06 +0000757Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
758
759 * Release of E2fsprogs version 1.02
760
761Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu>
762
763 * pass1.c (process_block): Check to see if a file is "fragmented".
764 i.e., non-contiguous. Note that any file which is larger
765 than the block group is guaranteed to be non-contiguous.
766 We may want to use a different hueristic for deciding
767 whether or not a file is "fragmented".
768
769 * e2fsck.c (show_stats): Print statistics of how many
770 non-contiguous files are on the system.
771
772Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu>
773
774 * badblocks.c (read_bad_blocks_file, test_disk): Fold
775 functionality of test_disk() (which runs badblocks) into
776 read_bad_blocks_file(); test_disk() now calls
777 read_bad_blocks_file() with a NULL bad_blocks_file
778 argument.
779
780Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu>
781
782 * e2fsck.c (check_mount): Use #if defined(__linux__) instead of
783 #if defined(linux). The latter won't work if we're
784 compiling -ansi.
785
Theodore Ts'o297f47a1997-04-26 14:25:20 +0000786Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu>
787
788 * e2fsck.c (check_mount): For Linux systems, the check to see if
789 the root is mounted read-only has to be done for all
790 filesystems, not just for the root filesystem, due to the
791 way that some /etc/rc scripts are set up.
792
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000793Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu>
794
795 * Makefile.in (install): Strip programs when they are installed.
796 (e2fsck): Build e2fsck statically.
797
798Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu>
799
800 * util.c (preenhalt): Preenhalt now takes an argument, which is an
801 ext2fs_filsys; this allows it to set the EXT2_ERROR_FS
802 flag in the superblock in cases where preenhalt is called.
803 All calls to preenhalt() were changed to either
804 preenhalt(fs) or preenhalt(NULL) in a few cases where the
805 fs pointer was not available. (Most notable, for block
806 read/write errors.)
807
808Mon Sep 4 21:41:03 1995 Remy Card <card@bbj>
809
810 * ehandler.c:
811 util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it.
812
813Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu>
814
815 * e2fsck.c (show_stats): Show statistics about how many inodes
816 have indirect, doubly indirect, and triply indirect
817 blocks. Allow up to 8 digits for statistics, instead of
818 merely 6, so things look pretty for large filesystems.
819
820 * pass1.c (pass1): Keep statistics about indirect, doubly
821 indirect, and triply indirect blocks.
822
823 * pass1.c (unwind_pass1): Clear the above statistics when unwinding
824 pass 1.
825
826Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl>
827
828 * util.c, ehandler.c: Move #include of <sys/resource.h> after
829 #include of "e2fsck.h", since sys/resource.h may depend on
830 sys/time.h, which is #included in e2fsck.h.
831
832Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu>
833
834 * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted()
835 function to determine if the device is mounted.
836
837 * e2fsck.c (main): Add better error messages if ext2fs_open()
838 fails.
839
840Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu>
841
842 * pass1.c (check_blocks): If we're clearing a directory, clear
843 pb.is_dir so we don't do the following check of making
844 sure the directory size matches; this is pointless, since
845 we've already cleared the inode.
846
847Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
848
849 * pass1.c (bad_primary_block): New function, called by
850 process_bad_block, which explains the facts of life to the
851 user when a block in the primary superblock or primary
852 group descriptors is bad.
853
854 * pass2.c (check_dot): Handle the case where the first directory
855 entry is used, but not ".".
856
857 * pass2.c (check_dotdot): Handle the case where the second directory
858 entry is used, but is not "..".
859
860Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
861
862 * e2fsck.c (check_super_block): Get the size of the physical
863 device and if it is smaller than the reported size of the
864 filesystem, report an error.
865
866Sat Aug 12 03:39:18 1995 Remy Card <card@bbj>
867
868 * e2fsck.c (check_if_skip): Print the number of allocated files and
869 blocks on clean filesystems.
870
871Fri Aug 11 14:15:36 1995 Remy Card <card@bbj>
872
873 * e2fsck.8: Updated date and version number.
874
875Thu Aug 10 14:26:01 1995 Remy Card <card@bbj>
876
877 * pass1.c (check_blocks): Check that directory size matches *exactly*
878 the count of allocated blocks.
879
880Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl>
881
882 * pass1b.c (pass1d): Free the shared[] array when we're done with
883 it to avoid a memory leak.
884
885 * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the
886 block_dup_map.
887
888 * pass2.c (process_bad_inode): When clearing the inode, make sure
889 the pathname is freed, to prevent a memory leak.
890
891 * pass5.c (check_inode_bitmaps): Free free_array and dir_array
892 when we're finished with them.
893 (check_block_bitmaps): Free free_array when we're finished
894 with them.
895
896 * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when
897 linking the executable.
898
899 * pass2.c (process_bad_inode): Even on OS's that don't support the
900 fragment fields, make sure the Linux equivalent fields are
901 set to zero. If an OS wants to reuse these fields, which
902 is probably a bad idea (although we may get desperate in
903 the future) this code will have to be changed.
904
905 * pass1.c (dir_block_cmp): If the block numbers are equal, compare
906 on the inode field, and then blockcnt field. This is just
907 to keep the ordering of dir_blocks the same on all
908 platforms when there are more than on missing directory
909 blocks, which are indicated directories with holes, which
910 are indicated with the block number being set to zero.
911
912Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
913
914 * pass1.c (check_blocks, process_block): check_blocks() modified
915 to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if
916 the inode is a directory. process_block() now checks to
917 see if a directory has a "hole", or missing block. If so,
918 this fact is recorded in the directory block list so that
919 the problem can be resolved in pass #2.
920
921 * pass2.c (allocate_dir_block): Added allocate_dir_block() to
922 allocate new blocks for directories with "holes". Called
923 out of check_dir_block if a block in the directory block
924 list is zero.
925
926 * pass3.c (get_lost_and_found): Move location of free(block) to
927 prevent possible memory leak.
928
929Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
930
931 * pass2.c (check_dir_block): Use a automatic, fixed-saize array
932 instead of alloca() --- alloca is not portable! Check to
933 make sure the filename is not longer than EXT2_NAME_LEN,
934 and offer to fix it by truncating it, since it should
935 never happen.
936
937 * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is
938 not portable!! In any case putenv() in some systems must
939 take a static character array or malloc()'ed memory;
940 passing memory allocated using alloca() to putenv() is not
941 advisable.
942
943 * pass2.c (check_dot, check_dotdot): Use malloc() instead of
944 alloca() --- alloca() is not portable!!!
945
946Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu>
947
948 * pass1b.c (pass1c):
949 * pass3.c (check_root, get_lost_and_found):
950 * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block
951 to read/write the directory block.
952
953Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu>
954
955 * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to
956 make sure VMIN and VTIME are set correct.
957
958Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu>
959
960 * pass1.c (mark_block_used): Change to be an inline function.
961 Assume that the block validity checks are already done,
962 and use the fast variant of the bitmap functions.
963
964Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu>
965
966 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the
967 bounds of the bitmaps in advance, and then use the fast
968 variant of e2fs_test_{block,inode}_bitmap.
969
970 * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since
971 the bounds checking has already been done earlier.
972
973Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu>
974
975 * pass1.c (pass1): Allocate and free the block_illegal_map, which
976 is used for shortcut processing in process_block.
977 (mark_table_blocks): Initialize block_illegal_map with the
978 filesystem blocks.
979 (describe_illegal_block): New helper function that
980 describes why a block is illegal.
981 (process_block): Use block_illegal_map as a shortcut
982 to determine whether a block is bad. Use
983 describe_illegal_block to print out why the block is illegal.
984
985Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl)
986
987 * flushb.c: Don't include <linux/fs.h> if it doesn't exist.
988
989 * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or
990 <mntent.h> if they don't exist. (Mostly so that "make
991 depend" works.)
992
993 * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if
994 it exists).
995
996 * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't
997 exist.
998
999Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1000
1001 * pass2.c (process_bad_inode, check_for_zero_long,
1002 check_for_zero_char): Change long to u32, and char to u8.
1003
1004Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1005
1006 * util.c (inode_has_valid_blocks):
1007 * pass2.c (process_bad_inode):
1008 * pass1.c (pass1, check_blocks, pass1_check_directory): Use
1009 LINUX_S_IS* instead of S_IS*.
1010
1011 * e2fsck.h: Don't #include <sys/stat.h>
1012
1013 * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although
1014 this program is pretty much useless if BLKFLSBUF isn't
1015 supported.)
1016
1017 * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is
1018 used.
1019
1020Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1021
1022 * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca
1023 to allocate space for file names instead of using fixed size buffers.
1024 (process_bad_inode): Only check inode frag fields if
1025 HAVE_EXT2_FRAGS is defined (by configure).
1026 * pass1.c (pass1): Only check the inode frag fields if
1027 HAVE_EXT2_FRAGS is defined (by configure).
1028
1029 * e2fsck.c (check_mount): Only check for a mounted filesystem if
1030 HAVE_MNTENT_H is defined (by configure).
1031 (PRS): Use alloca to allocate the new path string, instead of
1032 having a fixed size buffer (which was the wrong size anyway).
1033 (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl
1034 is defined.
1035
1036 * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is
1037 defined (by configure).
1038
1039 * Makefile.in: Rewritten to conform to GNU coding standards and
1040 support separate compilation directories.
1041
1042Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr>
1043
1044 * pass1.c (pass1): Test the mode in reserved inodes (must be zero).
1045
Theodore Ts'of3db3561997-04-26 13:34:30 +00001046Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost>
1047
1048 * pass1.c (unwind_pass1): Clear the file type statistics counter
1049 when pass 1 needs to be restarted from scratch.
1050
1051 * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were
1052 being reallocated to blocks in the next block group,
1053 instead of the current block grup.
1054
1055 * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever
1056 inode.i_links_count is set.
1057
1058Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11)
1059
1060 * pass1.c (process_block): Add checks for if the block is
1061 trepassing on a superblock or group descriptor table.
1062
1063Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu>
1064
1065 * main.c (corrupt_msg): Extend the message which is printed out
1066 when the superblock is corrupt, to include the suggestion
1067 of using the -b option to specify an alternate superblock.
1068
1069Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11)
1070
1071 * badblocks.c (read_bad_blocks_file): If we are adding or
1072 replacing bad blocks in the bad blocks inode, sanity check
1073 the bad block inode first, and clear out any illegal blocks.
1074
1075 * pass2.c (check_name): Don't bomb out if the attempt to get the
1076 pathname of the containing directory returns an error; the
1077 directory may be too badly damaged to expect that
1078 ext2fs_get_pathname will always succeed. Use "???" if the
1079 pathname can't be obtained (it's only for a printf to the
1080 user anyway).
1081
1082 The name of the containing directory and the bad filename
1083 were incorrectly interchanged in the user message. Fixed.
1084
1085 * pass2.c (check_name, check_dir_block): Use a common static
1086 string for the unknown pathname.
1087
1088Mon Nov 7 22:30:54 1994 Remy Card <card@bbj>
1089
1090 * Fixed lots of printf formats to make sure that block and inode
1091 numbers are printed as unsigned integers.
1092
1093Mon Oct 24 14:10:46 1994 (tytso@rsx-11)
1094
1095 * pass5.c (check_block_end): Fix calculation of how the last block
1096 in the block bitmap should be calculated.
1097
1098Wed Sep 7 10:01:13 1994 (tytso@rsx-11)
1099
1100 * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to
1101 be an ext2fs_inode_bitmap, and free it properly.
1102
1103 * e2fsck.h
1104 * e2fsck.c (main): Folded in Remy Card's changes to add a revision
1105 level to the superblock.
1106
1107Wed Aug 17 22:00:20 1994 Remy Card (card@bbj)
1108
1109 * e2fsck.c (usage): Fixed bogus usage message.
1110
1111Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11)
1112
1113 * pass1.c (process_bad_block): Fixed bug so that blocks in the
1114 backup superblocks and group descriptors are handled gracefully.
1115