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