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