blob: abc025395177fbe84dcab6e37ed404391658bd9d [file] [log] [blame]
Theodore Ts'o28ffafb2000-02-08 19:14:02 +000012000-02-08 <tytso@snap.thunk.org>
2
3 * Makefile.in: Call sync after finishing building all in this
4 directory.
5
6 * unix.c (PRS): sync the filesystem before trying to use
7 BLKFLSBUF, to minimize the chance of causing dirty blocks
8 to get dropped.
9
10 * e2fsck.h: Manually define BLKFLSBUF if not defined, and we're on
11 a Linux/i386 system.
12
13 * pass3.c (check_directory): Only do the loop detection algorithm
14 if we've searched over 2048 parent directories and haven't
15 found the end yet. This means that in the common case, we
16 don't allocate or clear the inode_loop_detection bitmap,
17 which for large systems, merely clearing the bitmap for
18 each directory was turning out to be quite expensive.
19 Thanks to Jani Jaakkola (jjaakkol@cs.helsinki.fi) for
20 identifying this problem.
21
Theodore Ts'o0c4a0722000-02-07 03:11:03 +0000222000-02-06 Theodore Ts'o <tytso@valinux.com>
23
24 * badblocks.c, e2fsck.h, ehandler.c, emptydir.c, extend.c,
25 flushb.c, iscan.c, message.c, pass1.c, pass1b.c, pass3.c
26 pass4.c, pass5.c, problem.c, scantest.c, swapfs.c,
27 unix.c, util.c: Add Internationalization support as
28 suggested by Marco d'Itri <md@linux.it>.
29
Theodore Ts'o80e808f2000-02-02 16:19:59 +0000302000-02-02 Theodore Ts'o <tytso@valinux.com>
31
32 * e2fsck.h, flushb.c, scantest.c: Remove uneeded include of
33 linux/fs.h
34
Theodore Ts'o894edb22000-01-18 21:27:12 +0000352000-01-18 Theodore Ts'o <tytso@valinux.com>
36
37 * Makefile.in: Since LIBUUID can sometimes include "-lsocket"
38 we need a separate DEPLIBUUID that can be used in
39 Makefile's dependency rules.
40
Theodore Ts'oa1ccadb1999-11-23 13:57:16 +0000411999-11-23 <tytso@valinux.com>
42
43 * e2fsck.8.in: Update language about where to find a backup
44 superblock.
45
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000461999-11-19 <tytso@valinux.com>
47
Theodore Ts'o86a63e91999-11-23 13:52:48 +000048 * pass1.c (process_inodes): Add shortcut handling; if
49 process_inodes_count is zero, return right away, to avoid
50 calling qsort with a non-positive count.
51
Theodore Ts'oec8d2c31999-11-19 18:52:36 +000052 * message.c (safe_print): Fix to properly display ^A, ^B, etc. and
53 to print Delete as ^?
54
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +000055 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
56 the source directory.
57
Theodore Ts'oa846d2f1999-11-10 15:50:24 +0000581999-11-10 <tytso@valinux.com>
59
Theodore Ts'ocd086361999-11-10 16:00:39 +000060 * Release of E2fsprogs 1.18
61
621999-11-10 <tytso@valinux.com>
63
Theodore Ts'oa846d2f1999-11-10 15:50:24 +000064 * problem.c (fix_problem): Support a new flag, PR_PREEN_NO which
65 means the answer is assumed to be no in preen mode. This
66 is now used in the PR_1_SET_IMMUTABLE code, so that in
67 preen mode we ignore these inodes and just print a warning
68 message.
69
Theodore Ts'o6fdc7a31999-11-10 13:34:40 +0000701999-11-09 <tytso@valinux.com>
71
72 * pass1.c (e2fsck_pass1): If the filesystem does not support
73 imagic inodes, if an inode has the imagic flag set, offer
74 to clear the imagic flag. If a valid device/fifo/socket
75 has the immutable flag set, call the new helper function
76 check_immutable() to offerto clear the immutable flag.
77
78 * pass2.c (check_filetype): Use the new ext2_file_type() helper
79 function instead of calculating the file_type information
80 manually.
81
82 * pass3.c (e2fsck_reconnect_file): When adding a link to
83 lost+found, calculate the filetype information so that
84 ext2fs_link() can use the information if applicable.
85 (get_lost_and_found): Create the /lost+found directory
86 with the correct filetype information if applicable.
87
88 * util.c (ext2_file_type), e2fsck.h: New function which returns
89 the directory entry file type information given the
90 inode's mode bits.
91
92 * problem.c, problem.h: Added new problem codes PR_1_SET_IMAGIC
93 and PR_1_SET_IMMUTABLE.
94
Theodore Ts'o7142db01999-11-08 18:46:54 +0000951999-11-07 <tytso@valinux.com>
96
97 * pass4.c (e2fsck_pass4): Clear inode_imagic_map after freeing it,
98 to prevent it from getting freed twice.
99
1001999-11-06 <tytso@valinux.com>
101
102 * unix.c (main): Close the filesystem before freeing the context,
103 so that in the event of a free()-related segmentation
104 violation, the filesystem is properly closed and written
105 out.
106
1071999-10-27 <tytso@valinux.com>
108
109 * e2fsck.c (e2fsck_reset_context): When freeing
110 ctx->inode_reg_map, we weren't zero'ing
111 ctx->inode_reg_map, which could cause a segfault later on
112 in the e2fsck run.
113
1141999-10-26 <tytso@valinux.com>
115
116 * problem.h (PR_2_SPLIT_DOT): Fix excess zero in problem code (now
117 matches the standard convention).
118
Theodore Ts'of68aa411999-10-26 14:20:22 +00001191999-10-26 <tytso@valinux.com>
120
Theodore Ts'o28e11941999-10-26 18:17:20 +0000121 * Release of E2fsprogs 1.17
122
1231999-10-26 <tytso@valinux.com>
124
Theodore Ts'of68aa411999-10-26 14:20:22 +0000125 * message.c (safe_print): Make safe_print take an char instead of
126 an unsigned char to fix gcc warnings.
127
Theodore Ts'oc40db6d1999-10-25 21:03:34 +00001281999-10-25 <tytso@valinux.com>
129
Theodore Ts'oe6597041999-10-26 02:30:16 +0000130 * util.c: For NT portability, don't redefine getchar(), since
131 stdio defines that. Instead we introduce a new
132 abstract macro read_a_char() which is #defined to the
133 right function as necessary.
134
Theodore Ts'oc40db6d1999-10-25 21:03:34 +0000135 * problem.c, problem.h (PR_2_NULL_NAME): Add new problem code.
136
137 * pass2.c (check_dir_block): Require that the length of the
138 directory entry be at least 12 bytes. Check to see if the
139 filename is zero-length, and flag that as an error.
140
Theodore Ts'o7847c1d1999-10-22 15:11:42 +00001411999-10-22 <tytso@valinux.com>
142
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000143 * Release of E2fsprogs 1.16
144
1451999-10-22 <tytso@valinux.com>
146
Theodore Ts'o7847c1d1999-10-22 15:11:42 +0000147 * pass2.c (check_filetype): If the filetype filesystem feature is
148 not set, and a directory entry has a dirent feature, offer
149 to clear it (since 2.0 kernels will do complain will
150 interpret it as a very large name length field).
151
152 * problem.c (PR_2_CLEAR_FILETYPE): Add new problem code.
153
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00001541999-10-21 <tytso@valinux.com>
155
Theodore Ts'ocaf8ce41999-10-21 19:56:34 +0000156 * e2fsck.8.in: Update man page to use a more standard format (bold
157 option flags and italicized variables), as suggested by
158 Andreas Dilger (adilger@enel.ucalgary.ca)
159
Theodore Ts'oaa4115a1999-10-21 19:33:18 +0000160 * pass4.c (e2fsck_pass4): If an inode is set in the
161 inode_imagic_map bitmap, don't check to see if it is
162 disconnected from the inode tree (because it almost
163 certainly will be). Free inode_imagic_map at the end of
164 pass 4.
165
166 * pass2.c (check_dir_block, check_filetype): If the FILETYPE
167 feature is set, check the directory entry's filetype
168 information field, and fix/set it if necessary.
169 (e2fsck_pass2): Free the inode_reg_map bitmap at the end
170 of pass 2.
171
172 * pass1.c (e2fsck_pass1, alloc_imagic_map): Allocate and fill in
173 information for inode_reg_map and inode_imagic_map, which
174 indicates which inodes are regular files and AFS inodes,
175 respectively.
176 Since only the master superblock is written during a
177 restart, force that superblock to be used after a restart;
178 otherwise changes to the block group descriptors end up
179 getting ignored.
180
181 * problem.c, problemP.h: If e2fsck is run -n, make def_yn variable
182 be 0 for "no". Add support for a new flag, PR_NO_NOMSG,
183 which supresses the problem message if e2fsck is run with
184 the -n option.
185
186 * problem.c, problem.h (PR_2_SET_FILETYPE, PR_2_BAD_FILETYPE): Add
187 new problem codes.
188
189 * message.c (expand_dirent_expression): Add support for %dt which
190 prints the dirent type information.
191
192 * e2fsck.c (e2fsck_reset_context): Free new bitmaps (inode_reg_map
193 and inode_imagic_map).
194
195 * e2fsck.h (e2fsck_t): Add new inode_reg_map and inode_magic_map
196 to the context structure.
197
Theodore Ts'o9ecd8be1999-10-20 18:24:31 +00001981999-09-24 <tytso@valinux.com>
199
200 * unix.c (PRS), util.c (ask_yn): Add #ifdef's to make
201 e2fsprogs easier to port to non-Unix platforms.
202
2031999-09-07 <tytso@valinux.com>
Theodore Ts'oc1faf9c1999-09-14 20:00:54 +0000204
205 * pass3.c (adjust_inode_count): Fix bug where we didn't keep the
206 internal and external inode counts in sync when we
207 decremented an inode whose link count was already zero.
208 Now we skip incrementing or decrementing both link counts
209 if we would cause an overflow condition.
210 (expand_dir, expand_dir_proc): Change where we update the
211 inode block count and size files so that the block count
212 field is updated correctly when we create an indirect block.
213
Theodore Ts'o78cf0541999-10-20 18:29:18 +00002141999-08-05 <tytso@valinux.com>
215
216 * super.c (check_super_block): Check to see whether the
217 inodes_per_group value in the superblock is insanely too
218 high.
219
Theodore Ts'oc1faf9c1999-09-14 20:00:54 +00002201999-08-02 <tytso@valinux.com>
221
222 * pass1b.c (clone_file_block): Don't clear the dup_map flag if
223 the block also shares data with the fs metadata when
224 the count drops to 1, since the block should still be
225 cloned, as fs metadata isn't included in the count.
226
2271999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000228
229 * Release of E2fsprogs 1.15
230
Theodore Ts'ob55199e1999-07-19 15:37:46 +00002311999-07-19 <tytso@valinux.com>
232
233 * unix.c (usage): Add minimalist emergency help to the usage
234 message.
235
Theodore Ts'o5596def1999-07-19 15:27:37 +00002361999-07-18 <tytso@valinux.com>
237
238 * unix.c: Add support for calculating a progress bar if the -C0
239 option is given. The function e2fsck_clear_progbar()
240 clears the progress bar and must be called before any
241 message is issued. SIGUSR1 will enable the progress bar,
242 and SIGUSR2 will disable the progress bar. This is used
243 by fsck to handle parallel filesystem checks. Also, set
244 the device_name from the filesystem label if it is
245 available.
246
247 * e2fsck.h: Add new flags E2F_FLAG_PROG_BAR and
248 E2F_FLAG_PROG_SUPRESS. Add new field in the e2fsck
249 structure which contains the last tenth of a percent
250 printed for the user.
251
252 * message.c (print_e2fsck_message): Add call to
253 e2fsck_clear_progbar().
254
255 * pass1.c (e2fsck_pass1):
256 * pass2.c (e2fsck_pass2):
257 * pass3.c (e2fsck_pass3):
258 * pass4.c (e2fsck_pass4):
259 * pass5.c (e2fsck_pass5): Add call to e2fsck_clear_progbar when
260 printing the resource tracking information.
261
262 * pass5.c (check_block_bitmaps, check_inode_bitmaps): If there is
263 an error in the bitmaps, suppress printing the progress
264 bar using the suppression flag for the remainder of the
265 check, in order to clean up the display.
266
Theodore Ts'o74033351999-07-01 03:00:47 +00002671999-06-30 <tytso@valinux.com>
268
269 * unix.c (check_mount): Clean up the abort message displayed when
270 the filesystem is mounted and either stdout or stdin isn't
271 a tty.
272
2731999-06-25 <tytso@valinux.com>
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +0000274
275 * e2fsck.h:
276 * pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode,
277 pass1_check_directory, e2fsck_use_inode_shortcuts): Make
278 pass1_* be private static functions, and create new
279 function e2fsck_use_inode_shortcuts which sets and clears
280 the inode shortcut functions in the fs structure.
281
282 * e2fsck.h:
283 * pass2.c (e2fsck_process_bad_inode): Make process_bad_inode() an
284 exported function.
285
286 * pass4.c (e2fsck_pass4): Call e2fsck_process_bad_inode to check
287 if a disconnected inode has any problems before
288 connecting it to /lost+found. Bug and suggested fix by
289 Pavel Machek <pavel@bug.ucw.cz>
290
2911999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000292
293 * unix.c (main): Add missing space in the disk write-protected
294 message.
295
Theodore Ts'od4b0ce01999-06-18 01:09:29 +00002961999-05-22 <tytso@rsts-11.mit.edu>
297
298 * problem.c, problem.h (PR_0_INODE_COUNT_WRONG): Add new problem
299 code.
300
301 * super.c (check_super_block): Add check to make sure the total
302 number of inodes is sane, since this can be calculated
303 from the number of groups times the number of inodes per
304 group. Offer to correct it if it is incorrect.
305
Theodore Ts'oe79d1b21999-06-18 01:06:59 +00003061999-03-19 <tytso@rsts-11.mit.edu>
307
308 * pass5.c (check_block_end): Fix fencepost condition where when
309 clearing the block padding we were missing the last position
310 in the bitmap.
311
Theodore Ts'o75d83be1999-05-18 03:16:36 +00003121999-05-17 <tytso@rsts-11.mit.edu>
313
314 * unix.c (reserve_stdio_fds): Add safety check in case
315 reserve_stdio_fds couldn't open /dev/null.
316
Theodore Ts'o4a9f5931999-03-16 19:32:52 +00003171999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
318
319 * util.c (print_resource_track): Use mallinfo if present to get
320 more accurate malloc statistics.
321
322 * pass3.c (get_lost_and_found): Check to see if lost+found is a
Theodore Ts'oc54b3c31999-07-03 07:20:06 +0000323 plain file; if so, offer to unlink it.
Theodore Ts'o4a9f5931999-03-16 19:32:52 +0000324
325 * problem.c, problem.h (PR_3_LPF_NOTDIR): Add new problem code.
326
3271999-03-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
328
329 * problem.c: Fix problem message for PR_1_BAD_GROUP_DESCRIPTORS so
330 that the block group number is printed. Add new prompt,
331 PROMPT_UNLINK.
332
3331999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
334
335 * Release of E2fsprogs 1.14
336
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00003371999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
338
339 * message.c (safe_print): New function which prints strings,
340 converting non-printable characters using the '^' and
341 M-notation. This function is now used to print directory
342 name entries and pathnames.
343
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000344Mon Jan 4 02:28:59 1999 Theodore Y. Ts'o <tytso@mit.edu>
345
346 * unix.c (main): Reset the context before calling ext2fs_close(),
347 to avoid referencing already freed memory.
348
Theodore Ts'o556ad131998-12-19 08:10:58 +00003491998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
350
351 * Release of E2fsprogs 1.13
352
Theodore Ts'o5a679c81998-12-03 16:40:38 +00003531998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
354
355 * Makefile.in: Updated dependencies.
356
3571998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
358
359 * pass3.c (get_lost_and_found): If the filesystem is not opened
360 read-only, then force /lost+found to be created if it is
361 not present.
362
363 * problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen
364 operation.
365
Theodore Ts'o1dde43f1998-11-14 04:18:28 +00003661998-10-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
367
368 * unix.c (main): Move ext2fs_close() after e2fsck_free_context()
369 since e2fsck_free_context may reference data in ctx->fs.
370
371 * e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL
372 before checking ctx->fs->dblist.
373
3741998-10-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
375
376 * pass1.c (e2fsck_pass1): Use the device check subroutine on
377 FIFO's and Socket's, so that we catch bogus immutable inodes.
378
379 * pass2.c (process_bad_inode): Process bad socket and fifo's.
380
381 * problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and
382 PR_2_BAD_SOCKET.
383
Theodore Ts'o7f813ba1998-09-03 01:26:03 +00003841998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
385
386 * problem.c: Add PR_3_NO_DIRINFO error code.
387
388 * super.c (check_super_value): Rename min and max to min_val and
389 max_val to avoid possible cpp macro conflicts.
390
391 * pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid
392 possible cpp macro conflicts.
393
394 * pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible
395 cpp macro conflicts.
396 (check_directory): Fix logic to avoid possible core dump
397 in the case of ext2fs_get_dir_info returning NULL. (By
398 the time we get here, it should never happen, but...).
399 Also simply/streamline the control flow of the function.
400
Theodore Ts'o24fc5031998-08-26 15:23:31 +00004011998-08-17 Theodore Ts'o <tytso@rsts-11.mit.edu>
402
403 * unix.c (check_if_skip): Move the "not cleanly mounted" check
404 ahead of the maximal mount and too long since checked tests.
405 (reserve_stdio_fds): Make sure 0,1,2 file descriptors are
406 open, so that we don't open the filesystem using the same
407 file descriptor as stdout or stderr.
408
Theodore Ts'of75c28d1998-08-01 04:18:06 +00004091998-08-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
410
411 * pass2.c (e2fsck_pass2): Fix the progress accounting so that we
412 get to 100%.
413
414 * pass3.c (e2fsck_pass3): Change progress accounting to be
415 consistent with the other e2fsck passes.
416
417 * e2fsck.c (e2fsck_run): At the end of each pass, call the
418 progress function with the pass number set to zero.
419
420 * unix.c (e2fsck_update_progress): If the pass number is zero,
421 ignore the call, since that indicates that we just want to
422 deallocate any progress structures.
423
Theodore Ts'o8144d671998-07-09 05:33:18 +00004241998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
425
Theodore Ts'o4a5fa191998-07-09 05:42:45 +0000426 * Release of E2fsprogs 1.12
427
4281998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
429
Theodore Ts'o8144d671998-07-09 05:33:18 +0000430 * unix.c (main): Fix typo in checking the incompat feature set; it
431 should be checked against EXT2_LIB_FEATURE_INCOMPAT_SUPP.
432
Theodore Ts'o1fad9041998-07-07 05:44:43 +00004331998-07-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
434
435 * badblocks.c (test_disk): Don't clear the existing bad blocks
436 list when using e2fsck -c, since it may cause blocks with
437 marginal errors to be dropped from the bad blocks list.
438
Theodore Ts'o874b4d21998-07-06 14:33:12 +0000439Mon Jul 6 10:32:11 1998 Theodre Ts'o <tytso@lurch.mit.edu>
440
441 * pass1.c (e2fsck_pass1): Use ext2fs_sb structure for
442 compatibility with older kernels.
443
Theodore Ts'o818180c1998-06-27 05:11:14 +00004441998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
445
446 * unix.c (e2fsck_update_progress): Remove unused variables.
447
Theodore Ts'o9d1bd3d1998-06-10 20:45:22 +00004481998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
449
450 * pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
451 collision with LFS API.
452
453 * pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is
454 properly initialized.
455 (e2fsck_pass1): Don't allow the the boot loader inode to
456 be a directory (clear the inode mode field if so).
457
Theodore Ts'oefac9a11998-05-07 05:02:00 +00004581998-05-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
459
460 * unix.c (PRS): Added new option -C, which causes e2fsck to print
461 progress updates so that callers can keep track of the
462 completion progress of e2fsck. Designed for use by
463 progress, except for -C 0, which prints a spinning report
464 which may be useful for some users.
465
466 * pass5.c (e2fsck_pass5): Use a finer-grained progress reporting
467 scheme (useful for larger filesystems).
468
469 * e2fsck.h: Add progress_fd and progress_pos, for use by the Unix
470 progress reporting functions.
471
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00004721998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
473
474 * pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the
475 appropriate return type for comparison functions for qsort.
476
477 * e2fsck.h: Add #ifdef protection for unistd.h
478
479 * super.c: Remove header files already included by e2fsck.h
480
Theodore Ts'o76f875d1998-04-27 01:41:13 +00004811998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
482
483 * dirinfo.c (e2fsck_add_dir_info): Update function to pass the old
484 size of the memory to be resized to ext2fs_resize_mem().
485
Theodore Ts'o7e44f241998-04-01 03:16:29 +00004861998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
487
488 * Makefile.in: Change to use new installation directory variables
489 convention. Fix uninstall rules to take $(DESTDIR) into
490 account. Remove cat8dir from the installdirs target,
491 since modern man package don't necessarily put the cat
492 directory in /usr/man/cat?.
493
Theodore Ts'o17dba281998-03-30 01:16:26 +00004941998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
495
496 * super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an
497 extern in e2fsck.h to prevent -Wall warnings.
498
499 * pass4.c (e2fsck_pass4): Remove unused variable 'j'.
500
5011998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
502
503 * super.c (check_super_block): Fix broken superblock sanity check
504 when calculating blocks_per_group if s_log_frag_size !=
505 s_log_block_size. Since we don't support fragments, this
506 isn't a bug deal, but it's good to get it fixed.
507
Theodore Ts'o246501c1998-03-24 16:22:38 +00005081998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
509
510 * unix.c: Fix bug in check of feature set, to make sure we can
511 really fix this filesystem.
512
513 * problem.h: Make blkcount type to be of type blkcnt_t. Make the
514 num field be a 64 bit type. Add the problem code
515 PR_1_FEATURE_LARGE_FILES
516
517 * problem.c: Add table entry for the problem code
518 PR_1_FEATURE_LARGE_FILES.
519
520 * pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only
521 a problem for directory inodes. (Since it is also
522 i_size_high now.) If there are no large_files, then
523 clear the LARGE_FLAG feature flag. If there are
524 large_files, but the LARGE_FLAG feature flag is not set,
525 complain and offer to fix it.
526 (check_blocks): Add support to deal with non-directory
527 inodes that have i_size_high set (i.e., large_files).
528 Don't give an error if a directory has preallocated
529 blocks, to support the DIR_PREALLOC feature.
530 (process_block, process_bad_block): The blockcnt variable
531 is a type of blkcnt_t, for conversion to the new
532 block_iterate2.
533
534 * pass2.c (process_bad_inode): A non-zero i_dir_acl field is only
535 a problem for directory inodes. (Since it is also
536 i_size_high now.)
537
538 * message.c (expand_inode_expression): Print a 64-bits of the
539 inode size for non-directory inodes. (Directory inodes
540 can only use a 32-bit directory acl size, since
541 i_size_high is shared with i_dir_acl.) Add sanity check
542 so that trying to print out the directory acl on a
543 non-directory inode will print zero.
544 (expand_percent_expression): %B and %N, which print
545 pctx->blkcount and pctx->num, can now be 64 bit
546 variables. Print them using the "%lld" format if
547 EXT2_NO_64_TYPE is not defined.
548
549 * e2fsck.h: Add the large_flagsfield to the e2fsck context.
550
551 * e2fsck.c (e2fsck_reset_context): Clear the large_flags
552 field.
553
Theodore Ts'ob6f79831998-03-09 13:10:37 +0000554Sun Mar 8 23:08:08 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
555
556 * pass3.c (fix_dotdot_proc):
557 * pass2.c (check_dot, check_dotdot, check_name, check_dir_block):
558 * message.c (expand_dirent_expression): Mask off the high eight
559 bits of the directory entry's name_len field, so that it
560 can be used for other purposes.
561
Theodore Ts'o2df1f6a1998-02-27 05:03:48 +0000562Fri Feb 27 00:01:39 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
563
564 * e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't
565 include EXT2_FLAG_RESTART anymore, we need to adjust this
566 routine so that it *does* return in the case of it seeing
567 EXT2_FLAG_RESTART.
568
569 * pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group
570 done callback function, which may set context abort
571 flags. So we need to test the context abort flags after
572 we call ext2_get_next_inode().
573 (process_inodes): If we abort due out of process_inodes,
574 do a clean exit by breaking out of the for loop instead of
575 just returning.
576
577 * e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be
578 considered a SIGNAL mask (i.e., requiring an immediate
579 abort of processing to restart). FLAG_RESTART just means
580 that we want to restart once pass 1 is complete.
581
Theodore Ts'oa02ce9d1998-02-24 20:22:23 +0000582Tue Feb 24 15:19:40 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
583
584 * Change the progress function to return an integer; if returns 1,
585 then the progress function is expected to have set the
586 e2fsck context flag signalling a user abort, and the
587 caller should also initiate a user abort.
588
Theodore Ts'o63c49691998-02-20 05:24:59 +0000589Tue Feb 17 19:03:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
590
591 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call
592 end_problem_latch() unless there was actually a problem
593 latched. Simplifies semantics of the latch processing.
594
Theodore Ts'o43139321998-02-16 22:34:46 +0000595Mon Feb 16 17:31:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
596
597 * e2fsck.h: Add new field, priv_data to the e2fsck context
598 structure. It should be used by callers of the e2fsck
599 functions only, and not by anything in e2fsck itself.
600
601Mon Feb 7 17:31:04 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
602
603 * super.c: Instead of call ext2fs_get_device_size(), define and call
604 e2fsck_get_device_size(). (This function may be stubbed
605 out in special versions of e2fsck.)
606
607 * pass3.c, pass4.c: Remove extra calls to the progress function
608 that weren't needed.
609
610 * mke2fs.8.in: Update man page to note that the format of the bad
611 block file is the same as the one generated by badblocks.
612
Theodore Ts'o54be2cc1998-02-01 12:58:48 +0000613Sun Feb 1 07:57:14 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
614
615 * dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed.
616
617 * e2fsck.h: Include <time.h> since it is needed
618
619 * super.c: If EXT2_SKIP_UUID is defined, then skip the UUID
620 processing.
621
Theodore Ts'o24dd4021998-02-01 00:16:40 +0000622Tue Jan 20 15:37:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
623
624 * unix.c (main): In the case where the filesystem revision is too
625 high, print the message about the superblock possibly
626 being corrupt.
627
628 * e2fsck.8.in: Add expanded comments about how the -b option
629 works.
630
Theodore Ts'o54dc7ca1998-01-19 14:50:49 +0000631Sat Jan 17 13:02:16 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
632
633 * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
634 the ext2-specific header files are in a flat directory.
635
636 * dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
637 super.c, swapfs.c, unix.c: Explicitly cast all assignments
638 from void * to be compatible with C++.
639
640Tue Jan 6 11:30:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
641
642 * unix.c (sync_disk): Remove sync_disk and calls to that function,
643 since ext2fs_close() now takes care of this.
644
645Mon Dec 29 14:45:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
646
647 * pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
648 ehandler.c, unix.c: Change use of private to be priv_data,
649 to avoid C++ reserved name clash.
650
Theodore Ts'o5be8dc21997-12-01 18:24:10 +0000651Fri Nov 28 09:30:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
652
653 * dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead
654 of e2fsck_get_num_dirs, which has been removed.
655
656Tue Nov 25 15:54:35 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
657
658 * Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want
659 to compile and install flushb.
660
Theodore Ts'o7fdfabd1997-11-24 11:51:17 +0000661Mon Nov 24 06:48:00 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
662
663 * pass1.c (e2fsck_pass1_check_device_inode): For now, only check
664 to make sure the extra i_blocks in a device are cleared if
665 the immutable flag is set.
666
667 * util.c (print_resource_track): Fix typo which caused the
668 time/resource tracking to print "Pass 1 :" instead of
669 "Pass 1: ".
670
Theodore Ts'ob8647fa1997-11-20 21:52:43 +0000671Thu Nov 20 16:02:23 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
672
673 * pass3.c (expand_directory): Fix bug which could cause core dump
674 when expanding the directory, and the bitmaps hadn't yet
675 been read in. Also, only use ext2fs_write_dir_block when
676 writing a directory block, not when writing out a fresh
677 indirect block.
678
Theodore Ts'o8039c481997-11-19 21:39:13 +0000679Wed Nov 19 16:15:44 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
680
681 * pass1.c (process_bad_block): Fix bug where first_block wasn't
682 getting incremented, which caused user to get a
683 "Programming error?" warning if there was a bad block in a
684 non-primary superblock/group_descriptor. Also fixed
685 another bug so that ext2fs_bg_has_super() is consulted, to
686 avoid problems when using a filesystem with the
687 sparse_groups option set and there are bad blocks at the
688 beginning of a group which doesn't have a superblock.
689
Theodore Ts'of8188ff1997-11-14 05:23:04 +0000690Thu Nov 6 16:10:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
691
692 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the
693 progress indicator function.
694
695 * pass1.c (scan_callback): Add call to the progress feedback
696 function (if it exists).
697
698Tue Nov 4 09:45:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
699
700 * super.c (check_super_block): Skip the device size check if the
701 get_device_size returns EXT2_EXT_UNIMPLEMENTED.
702
703 * iscan.c (main): Don't use fatal_error() anymore.
704
705 * pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of
706 calling fatal_error(0).
707
708 * problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
709 PR_3_NO_ROOT_INODE_ABORT): New problem codes.
710
711 * problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
712
713 * problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
714
715 * problemP.h: New file which separates out the private fix_problem
716 data structures.
717
718 * util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
719 swapfs.c util.c: allocate_memory() now takes a e2fsck
720 context as its first argument, and rename it to be
721 e2fsck_allocate_memory().
722
Theodore Ts'o08b21301997-11-03 19:42:40 +0000723Mon Nov 3 14:35:29 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
724
Theodore Ts'o68227541997-11-04 04:25:22 +0000725 * unix.c (main): Add a special case check for the error code EROFS
726 and display an appropriate error message for this case.
727
Theodore Ts'o08b21301997-11-03 19:42:40 +0000728 * [lots of files]: Change ext2fs_read_inode, ext2fs_write_inode
729 to take the e2fsck context as their first argument.
730 Change dir_info.c routines to take an e2fsck_context,
731 renamed them to start with e2fsck_ to avoid namespace
732 issues, and changed them to store the directory
733 information inside the e2fsck context.
734 Added e2fsck_run() which calls all of the e2fsck passes in
735 the correct order, and which handles the return of abort
736 codes. Added abort processing, both via setjmp/longjmp
737 and via flags in the e2fsck context. Use a flag in the
738 e2fsck context instead of the restart_e2fsck global
739 variable. Change uses of free and malloc to
740 ext2fs_free_mem and ext2fs_get_mem.
741
Theodore Ts'o291c9041997-10-31 06:17:08 +0000742Fri Oct 31 01:12:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
743
744 * pass1.c, pass3.c: Rename new error codes to _ET_ in them for
745 consistency.
746
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000747Sat Oct 25 00:10:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
748
749 * pass3.c (get_lost_and_found): Check error return of
750 EXT2_FILE_NOT_FOUND instead of ENOTDIR
751
752 * pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY
753 instead of ENOTDIR
754
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000755Fri Oct 24 00:12:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
756
Theodore Ts'o519149f1997-10-25 03:49:49 +0000757 * unix.c (PRS): Make the variable which getopt returns into be
758 an int, so that it won't lose on platforms where char is
759 unsigned.
760
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000761 * pass1b.c (clone_file): Fix bug in error reporting in the case
762 where cs.errcode is non-zero.
763
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000764Sun Oct 19 21:12:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
765
Theodore Ts'o8bf191e1997-10-20 01:38:32 +0000766 * pass*.c, super.c, unix.c, util.c, e2fsck.h: Place #ifdef
767 RESOURCE_TRACK around code which uses init_resource_track
768 and print_resource_track. (Not all systems have timeval)
769
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000770 * super.c: Remove excess #includes which are not necessary.
771
772 * e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H
773
Theodore Ts'o1b6bf171997-10-03 17:48:10 +0000774Fri Oct 3 13:40:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
775
776 * pass*.c, super.c: Massive changes to avoid using printf and
777 com_err routines. All diagnostic messages are now routed
778 through the fix_problem interface.
779
780Sat Sep 6 17:13:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
781
782 * pass2.c (check_dir_block): Check for duplicate '.' and '..'
783 entries.
784
785 * problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and
786 PR_2_DUP_DOT_DOT.
787
788Tue Sep 2 09:04:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
789
790 * problem.c: Added new problem codes for some of the
791 superblock corruption checks, and for the pass header
792 messages. ("Pass 1: xxxxx")
793
794 * util.c (print_resource_track): Now takes a description
795 argument.
796
797Mon Aug 25 10:23:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
798
799 * super.c, unix.c, e2fsck.c: New files to separate out the
800 operating-specific operations out from e2fsck.c.
801 e2fsck.c now contains the global e2fsck context management
802 routines, and super.c contains the "pass 0" initial
803 validation of the superblock and global block group
804 descriptors.
805
806 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate
807 (nearly) all global variables and moved them to the e2fsck
808 context structure.
809
810 * problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT,
811 PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS,
812 PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK
813
Theodore Ts'o7cf73dc1997-08-14 17:17:16 +0000814Thu Aug 14 10:55:21 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
815
816 * message.c: Add compression for the word "Illegal"
817
818 * problem.c: Added entries for PR_2_BAD_CHAR_DEV and
819 PR_2_BAD_BLOCK_DEV
820
821Wed Aug 13 09:55:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
822
823 * pass1.c (pass1, check_device_inode), pass2.c
824 (process_bad_inode): Use a more stringent test for a valid
825 device.
826
Theodore Ts'oa47b66e1997-08-10 23:02:21 +0000827Sun Aug 10 18:58:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
828
829 * e2fsck.c (check_mount): Add stronger warning message about the
830 perils of running e2fsck on a mounted filesystem.
831
Theodore Ts'o024996c1997-06-17 05:38:35 +0000832Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
833
834 * Release of E2fsprogs 1.11
835
Theodore Ts'oda2e97f1997-06-12 04:28:07 +0000836Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
837
838 * pass1.c (mark_table_blocks): Mark the superblock and group
839 descriptor blocks first, so that any conflicts between
840 these and the bitmap or inode table blocks is noticed.
841
842 * problem.c: Fix message printed out when a block or inode bitmap
843 conflicts with other fs data, has the correct group number
844 in it.
845
Theodore Ts'o7ac02a51997-06-11 18:32:35 +0000846Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
847
848 * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate.
849
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000850Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
851
Theodore Ts'o583ccdc1997-05-09 03:06:31 +0000852 * e2fsck.8.in: Fix minor typos and grammer oops found by Bill
853 Hawes (whawes@star.net).
854
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000855 * badblocks.c (read_bad_blocks_file): Pass the blocksize to the
856 bad blocks command so that all of the filesystem gets
857 tested in the case where the blocksize 2048 or 4096.
858
Theodore Ts'oa29f4d31997-04-29 21:26:48 +0000859Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
860
861 * Release of E2fsprogs version 1.10
862
863Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
864
865 * pass1b.c (pass1b): While scanning for inodes, simply skip inodes
866 where ext2fs_get_next_inode returns the
867 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error.
868
869Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
870
871 * Release of E2fsprogs version 1.09
872
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000873Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
874
875 * Release of E2fsprogs version 1.08
876
Theodore Ts'o521e3681997-04-29 17:48:10 +0000877Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
878
879 * pass1b.c (clone_file_block): If we clone a directory, we need to
880 update the dblist entry so that we check (and correct) the
881 right directory block.
882
883Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
884
885 * pass1.c (process_block): Don't clear blocks references to
886 filesystem metadata; let pass 1B handle this case.
887
888 * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA.
889
890 * pass1b.c (pass1d): Deal with a block which is shared with
891 filesystem metadata.
892
893 * e2fsck.h: Make block_illegal_map be a global variable
894
895Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
896
897 * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super
898 feature.
899 (get_backup_sb): New function which attempts to obtain the
900 correct backup superblock (if possible).
901
902Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
903
904 * e2fsck.c (main): Check the version of the library, and warn if
905 the library is out of date; this happens generally due to
906 users who manually install e2fsprogs.
907
908 * pass1.c (pass1_get_blocks): If the passed in inode number for
909 get_blocks isn't what we're expecting pass back
910 EXT2_ET_CALLBACK_NOT_HANDLED.
911
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000912Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
913
914 * Release of E2fsprogs version 1.07
915
916Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
917
918 * icount.c: New file which implements an inode count abstraction.
919 This significantly reduces amount of memory needed to
920 check really large filesystems.
921
922 * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount
923 abstraction.
924
925Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
926
927 * dirinfo.c (dir_info_iter): New function which allows iteration
928 over the directories in the dir_info map.
929
930 * pass3.c (pass3, check_directory): Speed up pass 3 by iterating
931 over all directories in the dir_info structure, instead of
932 iterating all inodes looking for directories, and then
933 looking up the directories using get_dir_info().
934
935Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
936
937 * pass1.c (pass1, process_block):
938 * pass2.c (pass2): Use the ext2_dblist abstraction instead of
939 manual code to manage the directory block list information.
940
941 * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c
942 (deallocate_inode): Call the ext2 library routine
943 ext2_inode_has_valid_blocks() instead of
944 inode_has_valid_blocks().
945
946 * swapfs.c (swap_inodes): Add check so that we don't try to call
947 swap_inode_blocks unless the inode has valid blocks.
948 (Otherwise a long fast symlink might cause
949 swap_inode_blocks to erroneously get called.)
950
951Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
952
953 * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and
954 PR_2_DOT_DOT_NULL_TERM.
955
956 * pass2.c (check_dot, check_dot_dot): Make sure the new . and
957 .. entries are null-terminated, since the 2.0 kernel
958 requires this (for no good reason).
959
960Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
961
962 * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so
963 that we can recover from missing inode tables.
964
965 * dirinfo.c (get_dir_info): If there are no directories in the
966 dir_info abstraction, don't core dump (because dir_info is
967 NULL).
968
969 * e2fsck.c (main): Don't try using the backup superblocks if there
970 aren't any.
971 (check_super_block): If there are illegal inode table or
972 bitmaps, set the filesystem as being in error.
973
974Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
975
976 * pass2.c (check_dir_block): Added check to make sure that rec_len
977 is a a multiple of 4 (so that the directory entries are
978 4-byte aligned).
979
980Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
981
982 * Makefile.in (uninstall): Uninstall all programs in the PROGS
983 line.
984 (PROGS): Don't build and install the extend program by
985 default.
986
987
988Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
989
990 * pass1.c (process_inodes): Make sure the stashed_ino variable is
991 saved and restored as well.
992 (pass1): For fast sym links, skip the check_blocks
993 processing step altogether.
994
995Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
996
997 * problem.c, message.c: New files, to completely refurbish how
998 filesystem problems are reported to the user. The
999 diagnostic messages are now encoded out in an easily
1000 customizable, extensible format. The messages printed out
1001 in preen mode are all on one line, and contain the device
1002 name.
1003
1004Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1005
1006 * swapfs.c (swap_inodes): When swapping a filesystem, ignore
1007 deleted files.
1008
1009 * pass1.c (pass1): Ignore missing inode table errors during the
1010 scan, and just skip past those inodes.
1011
1012 * pass3.c (check_root): Remove root_ino argument, and assume that
1013 the root inode must be EXT2_ROOT_INO. Move responsibility
1014 of setting the parent of the root inode in the directory
1015 inode structure to pass2().
1016
1017 * pass2.c (check_dir_block): Don't allow links to the root
1018 directory.
1019
1020 * dirinfo.c (add_dir_info): Remove last argument to add_dir_info,
1021 since the inode is no longer used.
1022
1023Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1024
1025 * e2fsck.c (main): If the superblock magic number is wrong, or the
1026 block group fails a sanity check, then automatically
1027 restart trying to use the backup superblocks.
1028
1029 * pass1.c (mark_table_blocks): Make the inode tables ahead of
1030 everything else; in the case where a bitmap block overlays
1031 the inode table, the inode table should take precedence.
1032
1033 * pass2.c (maybe_clear_entry): Make the deleted/unused error
1034 message fit on one line, since the error can happen during
1035 a preen pass. (We eventually need to revamp the whole
1036 e2fsck error reporting and prompting system, but that's a
1037 job for another day.)
1038
1039Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1040
1041 * e2fsck.c (main): Read in the list badblocks into fs->badblocks
1042 for the benefit of the inode scan functions.
1043
1044 * pass1.c (pass1): If ext2fs_get_next_inode() returns an error
1045 indicating that an inode is in a bad block, mark that
1046 inode as being used, as well as in the inode "bb" map.
1047
1048 * pass2.c (maybe_clear_entry): New function which generalizes the
1049 error cases when a directory entry needs to be cleared.
1050 (check_dir_block): If an inode is in the "bb" map, offer
1051 to clear the directory entry, since the inode is in a bad
1052 block.
1053
1054 * pass4.c (pass4): If an inode is marked as used, but is is marked
1055 in the "bb" map, don't process it as a disconnected inode.
1056
1057Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1058
1059 * Release of E2fsprogs version 1.06
1060
Theodore Ts'o5c576471997-04-29 15:29:49 +00001061Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1062
1063 * e2fsck.c (main): Print out the version number of the shared
1064 library when using the -V option.
1065
1066 * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for
1067 consistency's sake.
1068
1069 * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write
1070 out the backup superblocks when we know we have a valid
1071 filesystem.
1072
1073Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1074
1075 * util.c (preenhalt): Make it explicit on preenhalt that running
1076 e2fsck manually means without the -a or -p flag.
1077
1078Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1079
1080 * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode.
1081 (Linux/FT actually sets the mode bits, so we have to
1082 handle it specially.)
1083
1084 * e2fsck.c (check_if_skip): Print a message if the filesystem is
1085 just dirty, so that the user knows that it's about to be
1086 checked (since this will take a while).
1087
1088Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1089
1090 * pass4.c: If a disconnected inode is zero-length, prompt to
1091 delete it instead of connecting it to lost+found.
1092
1093Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1094
1095 * Release of E2fsprogs version 1.05
1096
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001097Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1098
1099 * pass4.c (pass4): If the user refuses to connect an unattached
1100 inode to lost+found, don't try to set i_links_count. This
1101 is bad, since if the user says yes, the inode will be
1102 marked as unused, which is not necessarily the right
1103 thing, especially since the rest of the cleanup doesn't
1104 happen here.
1105
1106 * pass2.c (deallocate_inode): Set inode_link_info[ino] when
1107 dellocating an inode. (Not strictly necessary, but...)
1108
1109 * pass4.c (pass4): Add "bonehead" explanation to the "programming
1110 error" message.
1111
1112Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1113
1114 * e2fsck.c (PRS,main): Added new options -s and -S. -s will
1115 byte-swap the filesystem so that it is normalized. -S
1116 will byte-swap the filesystem regardless of its current
1117 byte-order.
1118
1119 * swapfs.c: New file, which will byte-swap a filesystem.
1120
1121Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1122
1123 * pass1.c (pass1): Change handling on files with non-zero dtime
1124 and non-zero i_link_count; before we treated them as
1125 deleted file per botched ext2 0.3c kernel behavior. We
1126 now clear dtime instead.
1127
1128Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1129
1130 * e2fsck.c (main): If e2fsck sets the clean bit, even if
1131 nothing else is changed, make sure FSCK_NONDESTRUCT is
1132 set (since after all having the filesystem set to
1133 invalid is an error. :-)
1134
1135Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1136
1137 * pass1.c (process_block): Make sure that meta data doesn't get
1138 accidentally set in the dir_blocks array (which could
1139 happen in some error condtions).
1140
1141 * pass1.c (pass1):
1142 * pass2.c (process_bad_inode): Check for fragments in a
1143 OS-independent fashion.
1144
1145Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1146
1147 * e2fsck.c (check_if_skip): Close the filesystem when skipping the
1148 cleanup for the filesystem.
1149
1150Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1151
1152 * e2fsck.c: Improve corrupt_msg, so that it's less confusing.
1153
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001154Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1155
1156 * Release of E2fsprogs version 1.04
1157
1158Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1159
1160 * e2fsck.c (relocate_hint): Issue a hint that the user may wish to
1161 try "e2fsck -b 8193" before allowing e2fsck to relocate
1162 inode table blocks.
1163
1164 * Makefile.in (e2fsck): Build e2fsck statically or dynamically
1165 depending on the option to configure. Added targets for
1166 e2fsck.static and e2fsck.shared for people who want to
1167 build a static or shared variant manually.
1168
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001169Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1170
1171 * Release of E2fsprogs version 1.03
1172
1173Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu>
1174
1175 * e2fsck.c (show_stats): Don't use floating point to display
1176 percentage of non-contiguous files, as different libc
1177 handle result truncation differently, and this causes the
1178 test suite to bomb out depending on which libc you are
1179 using.
1180
1181 * util.c (allocate_memory): Fix error message to omit extraneous
1182 %%s.
1183
1184Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu>
1185
1186 * pass4.c (pass4):
1187 * pass2.c (check_dir_block):
1188 * pass1.c (pass1): Add support for dynamic first inode revision.
1189
1190Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu>
1191
1192 * pass3.c (check_root): Fix spelling typo
1193
1194Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu>
1195
1196 * e2fsck.c (check_super_block): If the superblock fails certain
1197 internal consistency checks, exit with a fatal error after
1198 printing the "superblock is corrupt message".
1199
Theodore Ts'o74becf31997-04-26 14:37:06 +00001200Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1201
1202 * Release of E2fsprogs version 1.02
1203
1204Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu>
1205
1206 * pass1.c (process_block): Check to see if a file is "fragmented".
1207 i.e., non-contiguous. Note that any file which is larger
1208 than the block group is guaranteed to be non-contiguous.
1209 We may want to use a different hueristic for deciding
1210 whether or not a file is "fragmented".
1211
1212 * e2fsck.c (show_stats): Print statistics of how many
1213 non-contiguous files are on the system.
1214
1215Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu>
1216
1217 * badblocks.c (read_bad_blocks_file, test_disk): Fold
1218 functionality of test_disk() (which runs badblocks) into
1219 read_bad_blocks_file(); test_disk() now calls
1220 read_bad_blocks_file() with a NULL bad_blocks_file
1221 argument.
1222
1223Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu>
1224
1225 * e2fsck.c (check_mount): Use #if defined(__linux__) instead of
1226 #if defined(linux). The latter won't work if we're
1227 compiling -ansi.
1228
Theodore Ts'o297f47a1997-04-26 14:25:20 +00001229Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu>
1230
1231 * e2fsck.c (check_mount): For Linux systems, the check to see if
1232 the root is mounted read-only has to be done for all
1233 filesystems, not just for the root filesystem, due to the
1234 way that some /etc/rc scripts are set up.
1235
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001236Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu>
1237
1238 * Makefile.in (install): Strip programs when they are installed.
1239 (e2fsck): Build e2fsck statically.
1240
1241Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu>
1242
1243 * util.c (preenhalt): Preenhalt now takes an argument, which is an
1244 ext2fs_filsys; this allows it to set the EXT2_ERROR_FS
1245 flag in the superblock in cases where preenhalt is called.
1246 All calls to preenhalt() were changed to either
1247 preenhalt(fs) or preenhalt(NULL) in a few cases where the
1248 fs pointer was not available. (Most notable, for block
1249 read/write errors.)
1250
1251Mon Sep 4 21:41:03 1995 Remy Card <card@bbj>
1252
1253 * ehandler.c:
1254 util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it.
1255
1256Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu>
1257
1258 * e2fsck.c (show_stats): Show statistics about how many inodes
1259 have indirect, doubly indirect, and triply indirect
1260 blocks. Allow up to 8 digits for statistics, instead of
1261 merely 6, so things look pretty for large filesystems.
1262
1263 * pass1.c (pass1): Keep statistics about indirect, doubly
1264 indirect, and triply indirect blocks.
1265
1266 * pass1.c (unwind_pass1): Clear the above statistics when unwinding
1267 pass 1.
1268
1269Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl>
1270
1271 * util.c, ehandler.c: Move #include of <sys/resource.h> after
1272 #include of "e2fsck.h", since sys/resource.h may depend on
1273 sys/time.h, which is #included in e2fsck.h.
1274
1275Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu>
1276
1277 * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted()
1278 function to determine if the device is mounted.
1279
1280 * e2fsck.c (main): Add better error messages if ext2fs_open()
1281 fails.
1282
1283Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu>
1284
1285 * pass1.c (check_blocks): If we're clearing a directory, clear
1286 pb.is_dir so we don't do the following check of making
1287 sure the directory size matches; this is pointless, since
1288 we've already cleared the inode.
1289
1290Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1291
1292 * pass1.c (bad_primary_block): New function, called by
1293 process_bad_block, which explains the facts of life to the
1294 user when a block in the primary superblock or primary
1295 group descriptors is bad.
1296
1297 * pass2.c (check_dot): Handle the case where the first directory
1298 entry is used, but not ".".
1299
1300 * pass2.c (check_dotdot): Handle the case where the second directory
1301 entry is used, but is not "..".
1302
1303Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1304
1305 * e2fsck.c (check_super_block): Get the size of the physical
1306 device and if it is smaller than the reported size of the
1307 filesystem, report an error.
1308
1309Sat Aug 12 03:39:18 1995 Remy Card <card@bbj>
1310
1311 * e2fsck.c (check_if_skip): Print the number of allocated files and
1312 blocks on clean filesystems.
1313
1314Fri Aug 11 14:15:36 1995 Remy Card <card@bbj>
1315
1316 * e2fsck.8: Updated date and version number.
1317
1318Thu Aug 10 14:26:01 1995 Remy Card <card@bbj>
1319
1320 * pass1.c (check_blocks): Check that directory size matches *exactly*
1321 the count of allocated blocks.
1322
1323Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl>
1324
1325 * pass1b.c (pass1d): Free the shared[] array when we're done with
1326 it to avoid a memory leak.
1327
1328 * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the
1329 block_dup_map.
1330
1331 * pass2.c (process_bad_inode): When clearing the inode, make sure
1332 the pathname is freed, to prevent a memory leak.
1333
1334 * pass5.c (check_inode_bitmaps): Free free_array and dir_array
1335 when we're finished with them.
1336 (check_block_bitmaps): Free free_array when we're finished
1337 with them.
1338
1339 * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when
1340 linking the executable.
1341
1342 * pass2.c (process_bad_inode): Even on OS's that don't support the
1343 fragment fields, make sure the Linux equivalent fields are
1344 set to zero. If an OS wants to reuse these fields, which
1345 is probably a bad idea (although we may get desperate in
1346 the future) this code will have to be changed.
1347
1348 * pass1.c (dir_block_cmp): If the block numbers are equal, compare
1349 on the inode field, and then blockcnt field. This is just
1350 to keep the ordering of dir_blocks the same on all
1351 platforms when there are more than on missing directory
1352 blocks, which are indicated directories with holes, which
1353 are indicated with the block number being set to zero.
1354
1355Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1356
1357 * pass1.c (check_blocks, process_block): check_blocks() modified
1358 to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if
1359 the inode is a directory. process_block() now checks to
1360 see if a directory has a "hole", or missing block. If so,
1361 this fact is recorded in the directory block list so that
1362 the problem can be resolved in pass #2.
1363
1364 * pass2.c (allocate_dir_block): Added allocate_dir_block() to
1365 allocate new blocks for directories with "holes". Called
1366 out of check_dir_block if a block in the directory block
1367 list is zero.
1368
1369 * pass3.c (get_lost_and_found): Move location of free(block) to
1370 prevent possible memory leak.
1371
1372Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1373
1374 * pass2.c (check_dir_block): Use a automatic, fixed-saize array
1375 instead of alloca() --- alloca is not portable! Check to
1376 make sure the filename is not longer than EXT2_NAME_LEN,
1377 and offer to fix it by truncating it, since it should
1378 never happen.
1379
1380 * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is
1381 not portable!! In any case putenv() in some systems must
1382 take a static character array or malloc()'ed memory;
1383 passing memory allocated using alloca() to putenv() is not
1384 advisable.
1385
1386 * pass2.c (check_dot, check_dotdot): Use malloc() instead of
1387 alloca() --- alloca() is not portable!!!
1388
1389Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu>
1390
1391 * pass1b.c (pass1c):
1392 * pass3.c (check_root, get_lost_and_found):
1393 * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block
1394 to read/write the directory block.
1395
1396Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu>
1397
1398 * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to
1399 make sure VMIN and VTIME are set correct.
1400
1401Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu>
1402
1403 * pass1.c (mark_block_used): Change to be an inline function.
1404 Assume that the block validity checks are already done,
1405 and use the fast variant of the bitmap functions.
1406
1407Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu>
1408
1409 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the
1410 bounds of the bitmaps in advance, and then use the fast
1411 variant of e2fs_test_{block,inode}_bitmap.
1412
1413 * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since
1414 the bounds checking has already been done earlier.
1415
1416Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu>
1417
1418 * pass1.c (pass1): Allocate and free the block_illegal_map, which
1419 is used for shortcut processing in process_block.
1420 (mark_table_blocks): Initialize block_illegal_map with the
1421 filesystem blocks.
1422 (describe_illegal_block): New helper function that
1423 describes why a block is illegal.
1424 (process_block): Use block_illegal_map as a shortcut
1425 to determine whether a block is bad. Use
1426 describe_illegal_block to print out why the block is illegal.
1427
1428Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl)
1429
1430 * flushb.c: Don't include <linux/fs.h> if it doesn't exist.
1431
1432 * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or
1433 <mntent.h> if they don't exist. (Mostly so that "make
1434 depend" works.)
1435
1436 * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if
1437 it exists).
1438
1439 * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't
1440 exist.
1441
1442Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1443
1444 * pass2.c (process_bad_inode, check_for_zero_long,
1445 check_for_zero_char): Change long to u32, and char to u8.
1446
1447Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1448
1449 * util.c (inode_has_valid_blocks):
1450 * pass2.c (process_bad_inode):
1451 * pass1.c (pass1, check_blocks, pass1_check_directory): Use
1452 LINUX_S_IS* instead of S_IS*.
1453
1454 * e2fsck.h: Don't #include <sys/stat.h>
1455
1456 * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although
1457 this program is pretty much useless if BLKFLSBUF isn't
1458 supported.)
1459
1460 * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is
1461 used.
1462
1463Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1464
1465 * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca
1466 to allocate space for file names instead of using fixed size buffers.
1467 (process_bad_inode): Only check inode frag fields if
1468 HAVE_EXT2_FRAGS is defined (by configure).
1469 * pass1.c (pass1): Only check the inode frag fields if
1470 HAVE_EXT2_FRAGS is defined (by configure).
1471
1472 * e2fsck.c (check_mount): Only check for a mounted filesystem if
1473 HAVE_MNTENT_H is defined (by configure).
1474 (PRS): Use alloca to allocate the new path string, instead of
1475 having a fixed size buffer (which was the wrong size anyway).
1476 (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl
1477 is defined.
1478
1479 * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is
1480 defined (by configure).
1481
1482 * Makefile.in: Rewritten to conform to GNU coding standards and
1483 support separate compilation directories.
1484
1485Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr>
1486
1487 * pass1.c (pass1): Test the mode in reserved inodes (must be zero).
1488
Theodore Ts'of3db3561997-04-26 13:34:30 +00001489Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost>
1490
1491 * pass1.c (unwind_pass1): Clear the file type statistics counter
1492 when pass 1 needs to be restarted from scratch.
1493
1494 * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were
1495 being reallocated to blocks in the next block group,
1496 instead of the current block grup.
1497
1498 * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever
1499 inode.i_links_count is set.
1500
1501Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11)
1502
1503 * pass1.c (process_block): Add checks for if the block is
1504 trepassing on a superblock or group descriptor table.
1505
1506Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu>
1507
1508 * main.c (corrupt_msg): Extend the message which is printed out
1509 when the superblock is corrupt, to include the suggestion
1510 of using the -b option to specify an alternate superblock.
1511
1512Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11)
1513
1514 * badblocks.c (read_bad_blocks_file): If we are adding or
1515 replacing bad blocks in the bad blocks inode, sanity check
1516 the bad block inode first, and clear out any illegal blocks.
1517
1518 * pass2.c (check_name): Don't bomb out if the attempt to get the
1519 pathname of the containing directory returns an error; the
1520 directory may be too badly damaged to expect that
1521 ext2fs_get_pathname will always succeed. Use "???" if the
1522 pathname can't be obtained (it's only for a printf to the
1523 user anyway).
1524
1525 The name of the containing directory and the bad filename
1526 were incorrectly interchanged in the user message. Fixed.
1527
1528 * pass2.c (check_name, check_dir_block): Use a common static
1529 string for the unknown pathname.
1530
1531Mon Nov 7 22:30:54 1994 Remy Card <card@bbj>
1532
1533 * Fixed lots of printf formats to make sure that block and inode
1534 numbers are printed as unsigned integers.
1535
1536Mon Oct 24 14:10:46 1994 (tytso@rsx-11)
1537
1538 * pass5.c (check_block_end): Fix calculation of how the last block
1539 in the block bitmap should be calculated.
1540
1541Wed Sep 7 10:01:13 1994 (tytso@rsx-11)
1542
1543 * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to
1544 be an ext2fs_inode_bitmap, and free it properly.
1545
1546 * e2fsck.h
1547 * e2fsck.c (main): Folded in Remy Card's changes to add a revision
1548 level to the superblock.
1549
1550Wed Aug 17 22:00:20 1994 Remy Card (card@bbj)
1551
1552 * e2fsck.c (usage): Fixed bogus usage message.
1553
1554Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11)
1555
1556 * pass1.c (process_bad_block): Fixed bug so that blocks in the
1557 backup superblocks and group descriptors are handled gracefully.
1558