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