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