blob: 60cd802f5c96c7356c111db0caf3190c33cfb700 [file] [log] [blame]
Theodore Ts'o328a5ce2001-05-13 20:21:25 +000012001-05-13 Theodore Tso <tytso@valinux.com>
2
3 * journal.c: Code cleanup; initialize journal_enable_debug using
4 an initializer.
5
Theodore Ts'ofc9a69c2001-05-12 13:43:46 +000062001-05-12 Theodore Tso <tytso@valinux.com>
7
8 * unix.c (PRS): Skip validation of -C's file descriptor if it is
9 zero, since that is special case.
10
Theodore Ts'of0b8c872001-05-09 06:03:58 +0000112001-05-09 Theodore Tso <tytso@valinux.com>
12
13 * super.c (release_orphan_inodes): Add gettext quoting around
14 "Truncating" and "Clearing" for i18n.
15
Theodore Ts'ob9852cd2001-05-05 05:14:59 +0000162001-05-05 Theodore Tso <tytso@valinux.com>
17
Theodore Ts'oe39ac922001-05-05 06:47:24 +000018 * util.c (fatal_error): Use the correct magic number when checking
19 the magic number for the io_channel data structure. Also
20 remove extraneous call to io_channel_flush() that was left
21 over from an editing session.
22
Theodore Ts'ob9852cd2001-05-05 05:14:59 +000023 * pass2.c (check_dir_block): Ignore EXT2_ET_DIR_CORRUPTED errors
24 from ext2fs_read_dir_block().
25
Theodore Ts'o5f629b72001-05-01 20:01:08 +0000262001-05-01 Theodore Tso <tytso@valinux.com>
27
Theodore Ts'oae8160e2001-05-01 21:13:37 +000028 * unix.c (PRS): Validate the completion information file
29 descriptor so that the completion bar won't get
30 accidentally written onto the disk.
31
Theodore Ts'o5f629b72001-05-01 20:01:08 +000032 * e2fsck.8.in: Add explanation that you can use mke2fs -n -b
33 blocksize to printout alternate superblock locations.
34
Theodore Ts'obc57f152001-04-26 04:11:46 +0000352001-04-26 Theodore Tso <tytso@valinux.com>
36
37 * unix.c (check_if_skip): If the max_mount_count is zero, treat it
38 as having no count set.
39
Theodore Ts'oef059872001-04-17 00:40:02 +0000402001-04-16 Theodore Tso <tytso@valinux.com>
41
42 * super.c (check_super_block): Fix bad calculation of
43 inodes_per_block, and tighten min/max checks to be a bit
44 more paranoid. Thanks to Andreas Dilger for pointing out
45 this bug.
46
Theodore Ts'o1f735032001-03-29 19:00:50 +0000472001-03-29 Theodore Tso <tytso@valinux.com>
48
Theodore Ts'o15986f72001-03-29 19:22:16 +000049 * journal.c (mark_buffer_uptodate): Add emulation of kernel
50 function mark_buffer_uptodate.
51
Theodore Ts'o1f735032001-03-29 19:00:50 +000052 * recovery.c, revoke.c: Synchronize with 0.6b ext3 files.
53
Theodore Ts'od0515212001-02-13 04:32:53 +0000542001-02-12 Theodore Tso <tytso@valinux.com>
55
56 * journal.c (e2fsck_run_ext3_journal): Force a flush of the
57 filesystem and io_channel before replaying the journal.
58
Theodore Ts'oa5c33f22001-01-18 02:34:03 +0000592001-01-17 Theodore Ts'o <tytso@valinux.com>
60
61 * pass1.c (check_blocks): Fix large file checking code so that
62 files > 2GB are considered large files, and restrict
63 directories from being > 2GB.
64
Theodore Ts'o7e92dfa2001-01-12 15:30:25 +0000652001-01-12 Theodore Ts'o <tytso@valinux.com>
66
Theodore Ts'oa9ca2012001-01-12 21:53:25 +000067 * journal.c (e2fsck_journal_fix_unsupported_super): Remove unused
68 function. Add FIXME notes to e2fsck_get_journal(), from
69 Andreas Dilger.
70
71 * pass1.c (e2fsck_pass1): Cap the maximum legal size of a file by
72 the limit caused by the fact that i_blocks is in 512 byte
73 units, and that the Linux buffer cache also fundamentally
74 assumes 512 byte sectors.
75 Make sure that the journal inode is a regular file, and
76 when clearing an unused journal inode, make sure the
77 icount db is updated.
78
79 * problem.c, problem.h (PR_1_JOURNAL_BAD_MODE): Add new problem code.
80
Theodore Ts'o37b6b292001-01-12 21:16:13 +000081 * problem.c: For PR_1_RESERVED_BAD_MODE, print a description of
82 the reserved inode. In PR_0_JOURNAL_HAS_JOURNAL, prompt
83 to clear the journal, rather than deleting it (which is
84 more accurate). (From Andreas Dilger.)
85
Theodore Ts'o6a6d3d42001-01-12 21:11:24 +000086 * journal.c: Make sure all functions which return an error code
87 use the errcode_t return type, and not "int"
88 (e2fsck_journal_release): Add new parameter, "drop",
89 which is used when we just want to deallocate the journal
90 without trying to write out any changes.
91 (mark_buffer_clean): New function
92 (e2fsck_check_ext3_journal): If we fail loading the
93 journal, make sure we free all memory associated with it.
94 (recover_ext3_journal): If we fail to load the journal or
95 initialize the revoke data structures, make sure we free all
96 memory associated with the journal.
97
Theodore Ts'o721edd02001-01-12 21:05:57 +000098 * message.c (special_inode_name): Add more special inode names
99 (From Andreas Dilger)
100
Theodore Ts'o58a75172001-01-12 20:59:19 +0000101 * util.c (fatal_error): Check to make sure the io_manager data
102 structure is sane before trying to flush the io_channel.
103 (From Andreas Dilger)
104
Theodore Ts'o721edd02001-01-12 21:05:57 +0000105 * mtrace.h, super.c, pass2.c: Minor whitespace cleanups, from
106 Andreas Dilger.
Theodore Ts'o4035f402001-01-12 20:25:50 +0000107
Theodore Ts'o7e92dfa2001-01-12 15:30:25 +0000108 * journal.c (e2fsck_journal_fix_bad_inode): Set pctx->ino to the
109 bad journal number.
110
111 * problem.c (PR_0_JOURNAL_BAD_INODE): Use pctx->ino instead of
112 pctx->num when printing the bad journal inode number.
113
Theodore Ts'o86c627e2001-01-11 15:12:14 +00001142001-01-11 <tytso@snap.thunk.org>
115
Theodore Ts'o5ba23cb2001-01-11 19:15:02 +0000116 * pass1.c (process_block): Remove dead code which was never
117 getting executed.
118
119 * iscan.c, unix.c, e2fsck.h: Don't use NOARGS, and use
120 ext2fs_sync_device() instead of using BLKFLSBUF.
121
122 * flushb.c: Don't use NOARGS anymore; everything is STDC these days.
123
Theodore Ts'o86c627e2001-01-11 15:12:14 +0000124 * dirinfo.c, e2fsck.h, emptydir.c, iscan.c, jfs_user.h, journal.c,
125 message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c,
126 pass5.c, problem.h, scantest.c, super.c, swapfs.c: Change
127 ino_t to ext2_ino_t.
128
Theodore Ts'o95a5bc92001-01-11 04:58:21 +00001292001-01-09 <tytso@snap.thunk.org>
130
131 * problem.c: Fix another broken @F vs @f problem.
132
Theodore Ts'o53ef44c2001-01-06 05:55:58 +00001332001-01-06 <tytso@snap.thunk.org>
134
135 * journal.c, pass1.c, pass1b.c, pass3.c, recovery.c, revoke.c,
136 super.c, unix.c, util.c: Fix random gcc -Wall complaints.
137
138 * jfs_user.h: Use more sophisticated inline handling to allow
139 building with --enable-gcc-wall
140
Theodore Ts'od3f35b62001-01-03 13:00:43 +00001412001-01-03 <tytso@snap.thunk.org>
142
Theodore Ts'of18996c2001-01-03 16:57:24 +0000143 * pass1.c (e2fsck_pass1): Moved journal inode handling out to its
144 own block; if the journal inode is not in use, and it
145 contains data, offer to clear it.
146
147 * problem.h, problem.c (PR1_JOURNAL_INODE_NOT_CLEAR): Add new
148 problem code.
149
150 * problem.c: Modified problem table to use a new abbreviations.
151
Theodore Ts'od74edf42001-01-03 19:38:04 +0000152 * message.c: Add @j abbreviation for journal, and @v abbreviation
Theodore Ts'oe9044062001-01-03 15:39:37 +0000153 for device.
Theodore Ts'o1ce64532001-01-03 15:34:20 +0000154
Theodore Ts'occ7067b2001-01-03 13:24:06 +0000155 * jfs_user.h: Moved contents of jfs_e2fsck.h into jfs_user.h.
156
Theodore Ts'od3f35b62001-01-03 13:00:43 +0000157 * journal.c (e2fsck_check_ext3_journal): Force a fsck if we remove
158 the journal stored on a reserved inode. Also force a fsck
159 if the journal appears to exist while !NEEDS_RECOVERY, and
160 we forcibly reset the journal.
161
Theodore Ts'of5ae75e2001-01-01 14:52:52 +00001622001-01-01 <tytso@snap.thunk.org>
163
Theodore Ts'o5dd8f962001-01-01 15:51:50 +0000164 * journal.c, pass1.c, super.c, unix.c: Replace use of struct
165 ext2fs_sb with struct ext2_super_block.
166
Theodore Ts'of5ae75e2001-01-01 14:52:52 +0000167 * pass1.c (check_blocks): Remove use of EXT2_HAS_*_FEATURE macros.
168
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00001692000-12-31 <tytso@snap.thunk.org>
170
171 * jfs_compat.h: Remove uneeded header file.
172
Theodore Ts'ob2f93192000-12-30 20:33:42 +00001732000-12-30 <tytso@snap.thunk.org>
174
Theodore Ts'oc59a7042000-12-31 01:52:03 +0000175 * malloc.h, mtrace.c: Renamed malloc.h to mtrace.h to avoid
176 conflicts with the system header file.
177
Theodore Ts'ob2f93192000-12-30 20:33:42 +0000178 * problem.h: Fixed numbering of pass1 error messages; an extra 0
179 had slipped into some of the numbers. (Pointed out by
180 Andreas Dilger)
181
182 * journal.c (e2fsck_journal_fix_corrupt_super): Clean up
183 unnecessary automatic variable. Add explanatory comment
184 about the kernel emulation routines. (Suggested by
185 Andreas Dilger)
186
Theodore Ts'o060b5fb2000-12-13 18:07:23 +00001872000-12-13 Theodore Ts'o <tytso@valinux.com>
188
Theodore Ts'o9b565752000-12-13 18:50:22 +0000189 * journal.c (e2fsck_check_ext3_journal): Check to make sure the
190 journal fields are consistent if any of the superblock
191 fields are set. (Backs out erroneous change made by sct,
192 pointed out by Andreas.)
193
194 * unix.c (main): Clarify coments (no code changes)
195
196 * super.c (release_orphan_inodes): Fix spelling typo in error message.
197
Theodore Ts'o8188c9e2000-12-13 18:39:14 +0000198 * pass1.c (e2fsck_pass1): Offer to update the filesystem revision
199 level if we need to set large files flag. Patch from
200 Andreas Dilger.
201
Theodore Ts'o7b59f1e2000-12-13 18:11:44 +0000202 * super.c (check_super_block): If we have any of the compatibility
203 flags set, we need to have a revision 1 filesystem. Most
204 kernels will not check the flags on a rev 0 filesystem
205 and we may have corruption issues because of the
206 incompatible changes to the filesystem. Patch from Andreas
207 Dilger.
208
Theodore Ts'o060b5fb2000-12-13 18:07:23 +0000209 * problem.c, problem.h (PR_0_FS_REV_LEVEL, PR_1_FS_REV_LEVEL): Add
210 new problem codes.
211
Theodore Ts'o0e8a9562000-12-09 06:41:25 +00002122000-12-09 <tytso@snap.thunk.org>
213
Theodore Ts'obf2d4992000-12-09 14:46:20 +0000214 * flushb.c: Fix flushb so that it does something other than waste
215 disk space when built on systems with modern header files
216 and add a non-subtle Copyright Licensing restriction so
217 Yann will remove it from the Debian Distribution. (Now
218 violates the Debian Free Software Guidelines, on purpose.)
219
Theodore Ts'of43650c2000-12-09 06:47:56 +0000220 * journal.c (e2fsck_check_ext3_journal): If JFS_DEBUG is defined
221 at the top level, set the JFS debuging level to 2.
222
Theodore Ts'o0e8a9562000-12-09 06:41:25 +0000223 * jfs_e2fsck.h, jfs_user.h: Replaces jfs_compat.h. The jfs.h file
224 has been moved to the include/linux directory.
225
226 * journal.c, revoke.c, recovery.c: Updated files from Stephen to
227 support the V2 superblock and revoke processing. The
228 journal.c and revoke.c files are copies from the ext3
229 kernel source.
230
231 * Makefile.in: Added revoke.c to the list of source/object files.
232
Theodore Ts'o133a56d2000-11-17 05:40:49 +00002332000-11-16 Theodore Ts'o <tytso@valinux.com>
234
235 * pass1b.c: Change routines to use PR_1B_BLOCK_ITERATE when
236 reporting problems rather than using com_err directly.
237
238 * problem.c, problem.h (PR_1B_BLOCK_ITERATE): Add new problem code.
239
240 * message.c (expand_percent_expression): Add safety check. If
241 ctx->str is NULL, print "NULL" instead of dereferencing
242 the null pointer.
243
244 * pass1b.c, pass2.c, pass3.c: Change calls to ext2fs_block_iterate
245 to ext2fs_block_iterate2, to support 64-bit filesizes and
246 to speed things up slightly by avoiding the use of the
247 ext2fs_block_iterate's compatibility shim layer.
248
Theodore Ts'o3f65f1a2000-10-30 14:33:49 +00002492000-10-30 <tytso@snap.thunk.org>
250
251 * util.c (get_backup_sb): Calculate backup superblock correctly
252 when the blocksize is > 1k.
253
Theodore Ts'o241f2242000-10-26 20:42:07 +00002542000-10-26 <tytso@snap.thunk.org>
255
256 * jfs.h, jfs_compat.h, journal.c: Updated to include the
257 definition of the new journal superblock format; still
258 only supports V1 superblocks for now. (From sct)
259
Theodore Ts'ob09a4b02000-10-24 21:16:09 +00002602000-10-24 <tytso@snap.thunk.org>
261
Theodore Ts'o83949022000-10-25 01:38:50 +0000262 * super.c (release_inode_block, release_inode_blocks,
263 release_orphan_inodes): Add code to deal with truncating
264 inodes which are still in use (but which are on the orphan
265 list because they need truncation).
266
267 * problem.c, problem.h: Rename PR_0_CLEAR_ORPHAN_INODE to
268 PR_0_ORPHAN_CLEAR_INODE, and remove
269 PR_0_ORPHAN_INODE_INUSE.
270
271 * journal.c (e2fsck_run_ext3_journal): Add i18n support, and print
272 a message when the journal is being recovered.
273
Theodore Ts'ob09a4b02000-10-24 21:16:09 +0000274 * pass1.c (e2fsck_pass1): Don't check the i_mode field for the
275 journal inode, if it is in use.
276
Theodore Ts'oadfca562000-09-12 21:24:36 +00002772000-09-12 <tytso@valinux.com>
278
279 * extend.c:
280 * flushb.c: Add include of nls-enable.h which is necessary so that
281 they can compile correctly.
282
Theodore Ts'occ96b2b2000-08-22 21:30:11 +00002832000-08-22 <tytso@valinux.com>
284
Theodore Ts'o2575fb02000-08-22 21:50:04 +0000285 * unix.c (main): If we're doing a read-only check, skip the
286 journal playback, but don't abort the e2fsck run.
287
Theodore Ts'o99a2cc92000-08-22 21:41:52 +0000288 * super.c (release_orphan_inodes): Fix typo; should do bounds
289 checking on next_ino instead of ino.
290
291 * jfs_compat.h (J_ASSERT):
292 * journal.c (e2fsck_run_ext3_journal):
293 * pass3.c (adjust_inode_count): Use fatal_error() instead of exit().
294
Theodore Ts'o243dc312000-08-22 21:37:47 +0000295 * unix.c: Use fatal_error() instead of exit() whenever possible.
296 Also fix the fsck exit codes so that we use FSCK_USAGE
297 when it is appropriate. Rename global_signal_ctx to
298 e2fsck_global_ctx and let it be exported globally.
299
Theodore Ts'occ96b2b2000-08-22 21:30:11 +0000300 * util.c (fatal_error): Try to flush the I/O manager before
301 forcing an exit.
302
Theodore Ts'oecf1b772000-08-20 22:06:31 +00003032000-08-20 <tytso@valinux.com>
304
305 * journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
306 e2fsck_check_ext3_journal to smash the journal because
307 journal->j_transaction_sequence wasn't getting
308 initialized.
309
310 * journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move
311 call to e2fsck_clear_recover from recover_ext3_journal to
312 after the filesystem has been closed and reopened.
313 Otherwise, the superblock in the filesystem handle will
314 probably be stale, and will overwrite the newer version of
315 the superblock written by the log recovery.
316
317 * message.c (expand_inode_expression): Add support for %Iu and %Ig
318
319 * problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
320
321 * super.c (release_orphan_inodes, release_inode_block,
322 release_inode_blocks): Update the block group descriptor
323 counts when freeing the orphan inode. Use
324 PR_0_CLEAR_ORPHAN_INODE to report when we clear an orphan.
325
326 * journal.c (e2fsck_run_ext3_journal): Fix a bug where we
327 attempted to reopen the filesystem using the device name
328 instead of the filesystem name.
329
Theodore Ts'o80bfaa32000-08-18 15:08:37 +00003302000-08-18 <tytso@valinux.com>
331
332 * Makefile.in: Update the make dependencies
333
334 * problem.c, problem.h: Add the problem codes:
335 PR_0_ORPHAN_ILLEGAL_BLOCK_NUM,
336 PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
337 PR_0_ORPHAN_ILLEGAL_HEAD_INODE,
338 PR_0_ORPHAN_ILLEGAL_INODE, PR_0_ORPHAN_INODE_INUSE
339
340 * super.c (release_inode_blocks, release_orphan_inodes,
341 check_super_block): Add support for clearing orphaned
342 inodes from the unmounted filesystem.
343
344 * journal.c (e2fsck_recover_ext3_journal): Remove the last orphan
345 check; this is now handled in check_super_block ---
346 non-journaled filesystems can use the orphan list in the
347 future. Also, move the the re-opening of the filesystem
348 to e2fsck_run_ext3_journal().
349
Theodore Ts'o3b5386d2000-08-14 14:25:19 +00003502000-07-12 Andreas Dilger <adilger@turbolinux.com>
351
352 * journal.c: implement loading of ext3 journal for recovery code
353
354 * problem.c (fix_problem): return answer from PR_AFTER_CODE to caller.
355 Add journal problems.
356
357 * recovery.c (journal_recover): user-space ext3 journal recovery code
358
359 * unix.c (main) : check journal and do recovery in separate steps
360
Theodore Ts'ob8d164c2000-08-08 03:17:04 +00003612000-08-07 <tytso@snap.thunk.org>
362
363 * unix.c (calc_percent): Make sure that we don't take a floating
364 exception if the max value is zero. (should normally
365 never happen, but...)
366
Theodore Ts'of9e67062000-07-13 23:25:54 +00003672000-07-13 <tytso@valinux.com>
368
369 * Release of E2fsprogs 1.19
370
Theodore Ts'o17390c02000-07-07 04:13:21 +00003712000-07-06 Theodore Ts'o <tytso@valinux.com>
372
373 * unix.c (check_if_skip): Modify algorithm for checking
374 s_max_mnt_count to match with the kernel. (If
375 s_max_mnt_count is negative, ignore the mnt_count check.)
376
377 * unix.c (e2fsck_update_progress): Adjust the width of the
378 progress bar dynamically, based on the filesystem name
379 that we need to display.
380
381 * unix.c (main): If the ext3 needs_recovery flag is set, call
382 e2fsck_run_ext3_journal() and then restart the e2fsck run.
383
384 * journal.c (e2fsck_run_ext3_journal): New file which contains
385 logic to recover the ext3 journal. This version relies on
386 the kernel being able to mount the filesystem in order to
387 run the journal.
388
Theodore Ts'o92269042000-07-05 18:25:59 +00003892000-07-05 Theodore Ts'o <tytso@valinux.com>
390
391 * unix.c (e2fsck_update_progress): Only save and check the last
392 percentage after multiplying it by 10, nor 1000, since we
393 only need to save values to a tenth of a percent (and the
394 percentage is already from 0 .. 100%, not 0 .. 1).
Theodore Ts'oe4c8e882000-07-05 23:54:46 +0000395 Also, re-arrange the logic so that we do the time
396 check only after doing the percentage check, and we
397 only advance the spinner if we're about to display it.
Theodore Ts'o92269042000-07-05 18:25:59 +0000398
Theodore Ts'o9cbfb8d2000-07-04 19:51:22 +00003992000-07-04 Theodore Ts'o <tytso@valinux.com>
400
401 * pass1.c (e2fsck_pass1): Check to see if the ext3 s_last_orphan
402 field is set; if so, clear it, so that ext3 mounting code
403 won't get confused by the fact that we've cleared out the
404 orphaned inodes.
405
Theodore Ts'obbd47d72000-06-10 19:21:33 +00004062000-06-10 Theodore Ts'o <tytso@valinux.com>
407
408 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Add error
409 checking for a "should never happen case".
410
411 * problem.c, problem.h (PR_5_COPY_IBITMAP_ERROR,
412 PR_5_COPY_BBITMAP_ERROR): Add new error codes.
413
Theodore Ts'od647a1e2000-05-27 14:40:09 +00004142000-05-27 Theodore Ts'o <tytso@valinux.com>
415
416 * pass1.c (pass1, check_size): Apply patch from Chris Wedgewood
417 (cw@foof.org) which checks to see if special devices have
418 a non-zero size, and deals with it.
419
420 * problem.c, problem.h (PR1_SET_NONZSIZE): Add new problem code.
421
Theodore Ts'o1d279212000-05-19 02:38:14 +00004222000-05-18 Theodore Ts'o <tytso@valinux.com>
423
424 * Makefile.in (install): Create a symbolic link for fsck.ext3 as
425 well.
426
Theodore Ts'o4ea0a112000-05-08 13:33:17 +00004272000-05-08 Theodore Ts'o <tytso@valinux.com>
428
429 * problem.c, problem.h (PR_0_HURD_CLEAR_FILETYPE): Add new problem
430 code.
431
432 * super.c (check_super_block): If the OS type in the superblock is
433 the Hurd, check to see if the filetype feature is set, and
434 offer to clear it if so. This needs to be done since the
435 Hurd doesn't properly support the filetype feature.
436 (And since the hurd allows the transmogrification of files
437 to special files and vice versa --- for no good reason
438 that I can understand --- it can't support the filetype
439 feature for the forseeable future, either.)
440
Theodore Ts'o373b8332000-04-03 16:22:35 +00004412000-04-03 Theodore Ts'o <tytso@valinux.com>
442
443 * unix.c: For platforms that don't define optarg.h, manually
444 define optarg and optind.
445
Theodore Ts'o01fbc702000-04-03 13:57:21 +00004462000-03-20 Theodore Ts'o <tytso@valinux.com>
447
448 * pass1.c (check_immutable, e2fsck_pass1_check_device_inode):
449 Check for the append-only as well as the immutable flag.
450
451 * problem.c (PR_1_SET_IMMUTABLE): Adjust message to include
452 append-only flag. Fix comment for compression flag.
453
Theodore Ts'o06012322000-02-12 20:12:43 +00004542000-02-12 <tytso@snap.thunk.org>
455
456 * unix.c (e2fsck_update_progress): Limit the number of updates to
457 the progress bars to 8 times a second. This allows a 9600
458 baud console link to keep up.
459
Theodore Ts'o19178752000-02-11 15:55:07 +00004602000-02-11 <tytso@snap.thunk.org>
461
462 * unix.c (main): If compression is enabled on the filesystem,
463 print a warning message (for now).
464
465 * message.c: Add new compression shortcut: @c == compress
466
467 * problem.c, problem.h (PR_1_COMPR_SET): Add new error code.
468
469 * pass1.c (check_blocks): If the inode has EXT2_COMPRBLK_FL flag
470 set, check to see if the filesystem supports compression.
471 If it does pass this information down to process_block()
472 so it can treat the compressed block flag words
473 correctly. If not, offer to clear the flag, since it
474 shouldn't be set.
475 (process_block): If an inode has the compressed inode flag
476 set, allow EXT2FS_COMPRESSED_BLKADDR.
477
478 * pass1b.c (process_pass1b_block, delete_file_block,
479 clone_file_block):
480 * pass2.c (deallocate_inode_block): Use HOLE_BLKADDR to check to
481 see if the block can be skipped.
482
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00004832000-02-08 <tytso@snap.thunk.org>
484
Theodore Ts'o4ee4ad32000-02-08 23:22:19 +0000485 * util.c: Make resource tracking message more concise.
486
Theodore Ts'o80c5d7e2000-02-08 23:19:32 +0000487 * e2fsck.h:
488 * pass1.c (mark_table_blocks, e2fsck_pass1): Remove
489 ctx->block_illegal_map, since it's not needed by pass1,
490 and pass1b has been modified to calculate it manually if
491 needed. This reduces the memory footprint needed by e2fsck.
492
493 * pass1b.c (check_if_fs_block): New static function which returns
494 whether or not a block overlaps with filesystem metadata.
495 This replaces consulting the block_illegal_map bitmap.
496
Theodore Ts'o28ffafb2000-02-08 19:14:02 +0000497 * Makefile.in: Call sync after finishing building all in this
498 directory.
499
500 * unix.c (PRS): sync the filesystem before trying to use
501 BLKFLSBUF, to minimize the chance of causing dirty blocks
502 to get dropped.
503
504 * e2fsck.h: Manually define BLKFLSBUF if not defined, and we're on
505 a Linux/i386 system.
506
507 * pass3.c (check_directory): Only do the loop detection algorithm
508 if we've searched over 2048 parent directories and haven't
509 found the end yet. This means that in the common case, we
510 don't allocate or clear the inode_loop_detection bitmap,
511 which for large systems, merely clearing the bitmap for
512 each directory was turning out to be quite expensive.
513 Thanks to Jani Jaakkola (jjaakkol@cs.helsinki.fi) for
514 identifying this problem.
515
Theodore Ts'o0c4a0722000-02-07 03:11:03 +00005162000-02-06 Theodore Ts'o <tytso@valinux.com>
517
518 * badblocks.c, e2fsck.h, ehandler.c, emptydir.c, extend.c,
519 flushb.c, iscan.c, message.c, pass1.c, pass1b.c, pass3.c
520 pass4.c, pass5.c, problem.c, scantest.c, swapfs.c,
521 unix.c, util.c: Add Internationalization support as
522 suggested by Marco d'Itri <md@linux.it>.
523
Theodore Ts'o80e808f2000-02-02 16:19:59 +00005242000-02-02 Theodore Ts'o <tytso@valinux.com>
525
526 * e2fsck.h, flushb.c, scantest.c: Remove uneeded include of
527 linux/fs.h
528
Theodore Ts'o894edb22000-01-18 21:27:12 +00005292000-01-18 Theodore Ts'o <tytso@valinux.com>
530
531 * Makefile.in: Since LIBUUID can sometimes include "-lsocket"
532 we need a separate DEPLIBUUID that can be used in
533 Makefile's dependency rules.
534
Theodore Ts'oa1ccadb1999-11-23 13:57:16 +00005351999-11-23 <tytso@valinux.com>
536
537 * e2fsck.8.in: Update language about where to find a backup
538 superblock.
539
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00005401999-11-19 <tytso@valinux.com>
541
Theodore Ts'o86a63e91999-11-23 13:52:48 +0000542 * pass1.c (process_inodes): Add shortcut handling; if
543 process_inodes_count is zero, return right away, to avoid
544 calling qsort with a non-positive count.
545
Theodore Ts'oec8d2c31999-11-19 18:52:36 +0000546 * message.c (safe_print): Fix to properly display ^A, ^B, etc. and
547 to print Delete as ^?
548
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000549 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
550 the source directory.
551
Theodore Ts'oa846d2f1999-11-10 15:50:24 +00005521999-11-10 <tytso@valinux.com>
553
Theodore Ts'ocd086361999-11-10 16:00:39 +0000554 * Release of E2fsprogs 1.18
555
5561999-11-10 <tytso@valinux.com>
557
Theodore Ts'oa846d2f1999-11-10 15:50:24 +0000558 * problem.c (fix_problem): Support a new flag, PR_PREEN_NO which
559 means the answer is assumed to be no in preen mode. This
560 is now used in the PR_1_SET_IMMUTABLE code, so that in
561 preen mode we ignore these inodes and just print a warning
562 message.
563
Theodore Ts'o6fdc7a31999-11-10 13:34:40 +00005641999-11-09 <tytso@valinux.com>
565
566 * pass1.c (e2fsck_pass1): If the filesystem does not support
567 imagic inodes, if an inode has the imagic flag set, offer
568 to clear the imagic flag. If a valid device/fifo/socket
569 has the immutable flag set, call the new helper function
570 check_immutable() to offerto clear the immutable flag.
571
572 * pass2.c (check_filetype): Use the new ext2_file_type() helper
573 function instead of calculating the file_type information
574 manually.
575
576 * pass3.c (e2fsck_reconnect_file): When adding a link to
577 lost+found, calculate the filetype information so that
578 ext2fs_link() can use the information if applicable.
579 (get_lost_and_found): Create the /lost+found directory
580 with the correct filetype information if applicable.
581
582 * util.c (ext2_file_type), e2fsck.h: New function which returns
583 the directory entry file type information given the
584 inode's mode bits.
585
586 * problem.c, problem.h: Added new problem codes PR_1_SET_IMAGIC
587 and PR_1_SET_IMMUTABLE.
588
Theodore Ts'o7142db01999-11-08 18:46:54 +00005891999-11-07 <tytso@valinux.com>
590
591 * pass4.c (e2fsck_pass4): Clear inode_imagic_map after freeing it,
592 to prevent it from getting freed twice.
593
5941999-11-06 <tytso@valinux.com>
595
596 * unix.c (main): Close the filesystem before freeing the context,
597 so that in the event of a free()-related segmentation
598 violation, the filesystem is properly closed and written
599 out.
600
6011999-10-27 <tytso@valinux.com>
602
603 * e2fsck.c (e2fsck_reset_context): When freeing
604 ctx->inode_reg_map, we weren't zero'ing
605 ctx->inode_reg_map, which could cause a segfault later on
606 in the e2fsck run.
607
6081999-10-26 <tytso@valinux.com>
609
610 * problem.h (PR_2_SPLIT_DOT): Fix excess zero in problem code (now
611 matches the standard convention).
612
Theodore Ts'of68aa411999-10-26 14:20:22 +00006131999-10-26 <tytso@valinux.com>
614
Theodore Ts'o28e11941999-10-26 18:17:20 +0000615 * Release of E2fsprogs 1.17
616
6171999-10-26 <tytso@valinux.com>
618
Theodore Ts'of68aa411999-10-26 14:20:22 +0000619 * message.c (safe_print): Make safe_print take an char instead of
620 an unsigned char to fix gcc warnings.
621
Theodore Ts'oc40db6d1999-10-25 21:03:34 +00006221999-10-25 <tytso@valinux.com>
623
Theodore Ts'oe6597041999-10-26 02:30:16 +0000624 * util.c: For NT portability, don't redefine getchar(), since
625 stdio defines that. Instead we introduce a new
626 abstract macro read_a_char() which is #defined to the
627 right function as necessary.
628
Theodore Ts'oc40db6d1999-10-25 21:03:34 +0000629 * problem.c, problem.h (PR_2_NULL_NAME): Add new problem code.
630
631 * pass2.c (check_dir_block): Require that the length of the
632 directory entry be at least 12 bytes. Check to see if the
633 filename is zero-length, and flag that as an error.
634
Theodore Ts'o7847c1d1999-10-22 15:11:42 +00006351999-10-22 <tytso@valinux.com>
636
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000637 * Release of E2fsprogs 1.16
638
6391999-10-22 <tytso@valinux.com>
640
Theodore Ts'o7847c1d1999-10-22 15:11:42 +0000641 * pass2.c (check_filetype): If the filetype filesystem feature is
642 not set, and a directory entry has a dirent feature, offer
643 to clear it (since 2.0 kernels will do complain will
644 interpret it as a very large name length field).
645
646 * problem.c (PR_2_CLEAR_FILETYPE): Add new problem code.
647
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00006481999-10-21 <tytso@valinux.com>
649
Theodore Ts'ocaf8ce41999-10-21 19:56:34 +0000650 * e2fsck.8.in: Update man page to use a more standard format (bold
651 option flags and italicized variables), as suggested by
652 Andreas Dilger (adilger@enel.ucalgary.ca)
653
Theodore Ts'oaa4115a1999-10-21 19:33:18 +0000654 * pass4.c (e2fsck_pass4): If an inode is set in the
655 inode_imagic_map bitmap, don't check to see if it is
656 disconnected from the inode tree (because it almost
657 certainly will be). Free inode_imagic_map at the end of
658 pass 4.
659
660 * pass2.c (check_dir_block, check_filetype): If the FILETYPE
661 feature is set, check the directory entry's filetype
662 information field, and fix/set it if necessary.
663 (e2fsck_pass2): Free the inode_reg_map bitmap at the end
664 of pass 2.
665
666 * pass1.c (e2fsck_pass1, alloc_imagic_map): Allocate and fill in
667 information for inode_reg_map and inode_imagic_map, which
668 indicates which inodes are regular files and AFS inodes,
669 respectively.
670 Since only the master superblock is written during a
671 restart, force that superblock to be used after a restart;
672 otherwise changes to the block group descriptors end up
673 getting ignored.
674
675 * problem.c, problemP.h: If e2fsck is run -n, make def_yn variable
676 be 0 for "no". Add support for a new flag, PR_NO_NOMSG,
677 which supresses the problem message if e2fsck is run with
678 the -n option.
679
680 * problem.c, problem.h (PR_2_SET_FILETYPE, PR_2_BAD_FILETYPE): Add
681 new problem codes.
682
683 * message.c (expand_dirent_expression): Add support for %dt which
684 prints the dirent type information.
685
686 * e2fsck.c (e2fsck_reset_context): Free new bitmaps (inode_reg_map
687 and inode_imagic_map).
688
689 * e2fsck.h (e2fsck_t): Add new inode_reg_map and inode_magic_map
690 to the context structure.
691
Theodore Ts'o9ecd8be1999-10-20 18:24:31 +00006921999-09-24 <tytso@valinux.com>
693
694 * unix.c (PRS), util.c (ask_yn): Add #ifdef's to make
695 e2fsprogs easier to port to non-Unix platforms.
696
6971999-09-07 <tytso@valinux.com>
Theodore Ts'oc1faf9c1999-09-14 20:00:54 +0000698
699 * pass3.c (adjust_inode_count): Fix bug where we didn't keep the
700 internal and external inode counts in sync when we
701 decremented an inode whose link count was already zero.
702 Now we skip incrementing or decrementing both link counts
703 if we would cause an overflow condition.
704 (expand_dir, expand_dir_proc): Change where we update the
705 inode block count and size files so that the block count
706 field is updated correctly when we create an indirect block.
707
Theodore Ts'o78cf0541999-10-20 18:29:18 +00007081999-08-05 <tytso@valinux.com>
709
710 * super.c (check_super_block): Check to see whether the
711 inodes_per_group value in the superblock is insanely too
712 high.
713
Theodore Ts'oc1faf9c1999-09-14 20:00:54 +00007141999-08-02 <tytso@valinux.com>
715
716 * pass1b.c (clone_file_block): Don't clear the dup_map flag if
717 the block also shares data with the fs metadata when
718 the count drops to 1, since the block should still be
719 cloned, as fs metadata isn't included in the count.
720
7211999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000722
723 * Release of E2fsprogs 1.15
724
Theodore Ts'ob55199e1999-07-19 15:37:46 +00007251999-07-19 <tytso@valinux.com>
726
727 * unix.c (usage): Add minimalist emergency help to the usage
728 message.
729
Theodore Ts'o5596def1999-07-19 15:27:37 +00007301999-07-18 <tytso@valinux.com>
731
732 * unix.c: Add support for calculating a progress bar if the -C0
733 option is given. The function e2fsck_clear_progbar()
734 clears the progress bar and must be called before any
735 message is issued. SIGUSR1 will enable the progress bar,
736 and SIGUSR2 will disable the progress bar. This is used
737 by fsck to handle parallel filesystem checks. Also, set
738 the device_name from the filesystem label if it is
739 available.
740
741 * e2fsck.h: Add new flags E2F_FLAG_PROG_BAR and
742 E2F_FLAG_PROG_SUPRESS. Add new field in the e2fsck
743 structure which contains the last tenth of a percent
744 printed for the user.
745
746 * message.c (print_e2fsck_message): Add call to
747 e2fsck_clear_progbar().
748
749 * pass1.c (e2fsck_pass1):
750 * pass2.c (e2fsck_pass2):
751 * pass3.c (e2fsck_pass3):
752 * pass4.c (e2fsck_pass4):
753 * pass5.c (e2fsck_pass5): Add call to e2fsck_clear_progbar when
754 printing the resource tracking information.
755
756 * pass5.c (check_block_bitmaps, check_inode_bitmaps): If there is
757 an error in the bitmaps, suppress printing the progress
758 bar using the suppression flag for the remainder of the
759 check, in order to clean up the display.
760
Theodore Ts'o74033351999-07-01 03:00:47 +00007611999-06-30 <tytso@valinux.com>
762
763 * unix.c (check_mount): Clean up the abort message displayed when
764 the filesystem is mounted and either stdout or stdin isn't
765 a tty.
766
7671999-06-25 <tytso@valinux.com>
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +0000768
769 * e2fsck.h:
770 * pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode,
771 pass1_check_directory, e2fsck_use_inode_shortcuts): Make
772 pass1_* be private static functions, and create new
773 function e2fsck_use_inode_shortcuts which sets and clears
774 the inode shortcut functions in the fs structure.
775
776 * e2fsck.h:
777 * pass2.c (e2fsck_process_bad_inode): Make process_bad_inode() an
778 exported function.
779
780 * pass4.c (e2fsck_pass4): Call e2fsck_process_bad_inode to check
781 if a disconnected inode has any problems before
782 connecting it to /lost+found. Bug and suggested fix by
783 Pavel Machek <pavel@bug.ucw.cz>
784
7851999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000786
787 * unix.c (main): Add missing space in the disk write-protected
788 message.
789
Theodore Ts'od4b0ce01999-06-18 01:09:29 +00007901999-05-22 <tytso@rsts-11.mit.edu>
791
792 * problem.c, problem.h (PR_0_INODE_COUNT_WRONG): Add new problem
793 code.
794
795 * super.c (check_super_block): Add check to make sure the total
796 number of inodes is sane, since this can be calculated
797 from the number of groups times the number of inodes per
798 group. Offer to correct it if it is incorrect.
799
Theodore Ts'oe79d1b21999-06-18 01:06:59 +00008001999-03-19 <tytso@rsts-11.mit.edu>
801
802 * pass5.c (check_block_end): Fix fencepost condition where when
803 clearing the block padding we were missing the last position
804 in the bitmap.
805
Theodore Ts'o75d83be1999-05-18 03:16:36 +00008061999-05-17 <tytso@rsts-11.mit.edu>
807
808 * unix.c (reserve_stdio_fds): Add safety check in case
809 reserve_stdio_fds couldn't open /dev/null.
810
Theodore Ts'o4a9f5931999-03-16 19:32:52 +00008111999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu>
812
813 * util.c (print_resource_track): Use mallinfo if present to get
814 more accurate malloc statistics.
815
816 * pass3.c (get_lost_and_found): Check to see if lost+found is a
Theodore Ts'oc54b3c31999-07-03 07:20:06 +0000817 plain file; if so, offer to unlink it.
Theodore Ts'o4a9f5931999-03-16 19:32:52 +0000818
819 * problem.c, problem.h (PR_3_LPF_NOTDIR): Add new problem code.
820
8211999-03-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
822
823 * problem.c: Fix problem message for PR_1_BAD_GROUP_DESCRIPTORS so
824 that the block group number is printed. Add new prompt,
825 PROMPT_UNLINK.
826
8271999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
828
829 * Release of E2fsprogs 1.14
830
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00008311999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
832
833 * message.c (safe_print): New function which prints strings,
834 converting non-printable characters using the '^' and
835 M-notation. This function is now used to print directory
836 name entries and pathnames.
837
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000838Mon Jan 4 02:28:59 1999 Theodore Y. Ts'o <tytso@mit.edu>
839
840 * unix.c (main): Reset the context before calling ext2fs_close(),
841 to avoid referencing already freed memory.
842
Theodore Ts'o556ad131998-12-19 08:10:58 +00008431998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
844
845 * Release of E2fsprogs 1.13
846
Theodore Ts'o5a679c81998-12-03 16:40:38 +00008471998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
848
849 * Makefile.in: Updated dependencies.
850
8511998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
852
853 * pass3.c (get_lost_and_found): If the filesystem is not opened
854 read-only, then force /lost+found to be created if it is
855 not present.
856
857 * problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen
858 operation.
859
Theodore Ts'o1dde43f1998-11-14 04:18:28 +00008601998-10-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
861
862 * unix.c (main): Move ext2fs_close() after e2fsck_free_context()
863 since e2fsck_free_context may reference data in ctx->fs.
864
865 * e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL
866 before checking ctx->fs->dblist.
867
8681998-10-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
869
870 * pass1.c (e2fsck_pass1): Use the device check subroutine on
871 FIFO's and Socket's, so that we catch bogus immutable inodes.
872
873 * pass2.c (process_bad_inode): Process bad socket and fifo's.
874
875 * problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and
876 PR_2_BAD_SOCKET.
877
Theodore Ts'o7f813ba1998-09-03 01:26:03 +00008781998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
879
880 * problem.c: Add PR_3_NO_DIRINFO error code.
881
882 * super.c (check_super_value): Rename min and max to min_val and
883 max_val to avoid possible cpp macro conflicts.
884
885 * pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid
886 possible cpp macro conflicts.
887
888 * pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible
889 cpp macro conflicts.
890 (check_directory): Fix logic to avoid possible core dump
891 in the case of ext2fs_get_dir_info returning NULL. (By
892 the time we get here, it should never happen, but...).
893 Also simply/streamline the control flow of the function.
894
Theodore Ts'o24fc5031998-08-26 15:23:31 +00008951998-08-17 Theodore Ts'o <tytso@rsts-11.mit.edu>
896
897 * unix.c (check_if_skip): Move the "not cleanly mounted" check
898 ahead of the maximal mount and too long since checked tests.
899 (reserve_stdio_fds): Make sure 0,1,2 file descriptors are
900 open, so that we don't open the filesystem using the same
901 file descriptor as stdout or stderr.
902
Theodore Ts'of75c28d1998-08-01 04:18:06 +00009031998-08-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
904
905 * pass2.c (e2fsck_pass2): Fix the progress accounting so that we
906 get to 100%.
907
908 * pass3.c (e2fsck_pass3): Change progress accounting to be
909 consistent with the other e2fsck passes.
910
911 * e2fsck.c (e2fsck_run): At the end of each pass, call the
912 progress function with the pass number set to zero.
913
914 * unix.c (e2fsck_update_progress): If the pass number is zero,
915 ignore the call, since that indicates that we just want to
916 deallocate any progress structures.
917
Theodore Ts'o8144d671998-07-09 05:33:18 +00009181998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
919
Theodore Ts'o4a5fa191998-07-09 05:42:45 +0000920 * Release of E2fsprogs 1.12
921
9221998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
923
Theodore Ts'o8144d671998-07-09 05:33:18 +0000924 * unix.c (main): Fix typo in checking the incompat feature set; it
925 should be checked against EXT2_LIB_FEATURE_INCOMPAT_SUPP.
926
Theodore Ts'o1fad9041998-07-07 05:44:43 +00009271998-07-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
928
929 * badblocks.c (test_disk): Don't clear the existing bad blocks
930 list when using e2fsck -c, since it may cause blocks with
931 marginal errors to be dropped from the bad blocks list.
932
Theodore Ts'o874b4d21998-07-06 14:33:12 +0000933Mon Jul 6 10:32:11 1998 Theodre Ts'o <tytso@lurch.mit.edu>
934
935 * pass1.c (e2fsck_pass1): Use ext2fs_sb structure for
936 compatibility with older kernels.
937
Theodore Ts'o818180c1998-06-27 05:11:14 +00009381998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
939
940 * unix.c (e2fsck_update_progress): Remove unused variables.
941
Theodore Ts'o9d1bd3d1998-06-10 20:45:22 +00009421998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
943
944 * pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
945 collision with LFS API.
946
947 * pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is
948 properly initialized.
949 (e2fsck_pass1): Don't allow the the boot loader inode to
950 be a directory (clear the inode mode field if so).
951
Theodore Ts'oefac9a11998-05-07 05:02:00 +00009521998-05-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
953
954 * unix.c (PRS): Added new option -C, which causes e2fsck to print
955 progress updates so that callers can keep track of the
956 completion progress of e2fsck. Designed for use by
957 progress, except for -C 0, which prints a spinning report
958 which may be useful for some users.
959
960 * pass5.c (e2fsck_pass5): Use a finer-grained progress reporting
961 scheme (useful for larger filesystems).
962
963 * e2fsck.h: Add progress_fd and progress_pos, for use by the Unix
964 progress reporting functions.
965
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00009661998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
967
968 * pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the
969 appropriate return type for comparison functions for qsort.
970
971 * e2fsck.h: Add #ifdef protection for unistd.h
972
973 * super.c: Remove header files already included by e2fsck.h
974
Theodore Ts'o76f875d1998-04-27 01:41:13 +00009751998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
976
977 * dirinfo.c (e2fsck_add_dir_info): Update function to pass the old
978 size of the memory to be resized to ext2fs_resize_mem().
979
Theodore Ts'o7e44f241998-04-01 03:16:29 +00009801998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
981
982 * Makefile.in: Change to use new installation directory variables
983 convention. Fix uninstall rules to take $(DESTDIR) into
984 account. Remove cat8dir from the installdirs target,
985 since modern man package don't necessarily put the cat
986 directory in /usr/man/cat?.
987
Theodore Ts'o17dba281998-03-30 01:16:26 +00009881998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
989
990 * super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an
991 extern in e2fsck.h to prevent -Wall warnings.
992
993 * pass4.c (e2fsck_pass4): Remove unused variable 'j'.
994
9951998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
996
997 * super.c (check_super_block): Fix broken superblock sanity check
998 when calculating blocks_per_group if s_log_frag_size !=
999 s_log_block_size. Since we don't support fragments, this
1000 isn't a bug deal, but it's good to get it fixed.
1001
Theodore Ts'o246501c1998-03-24 16:22:38 +000010021998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1003
1004 * unix.c: Fix bug in check of feature set, to make sure we can
1005 really fix this filesystem.
1006
1007 * problem.h: Make blkcount type to be of type blkcnt_t. Make the
1008 num field be a 64 bit type. Add the problem code
1009 PR_1_FEATURE_LARGE_FILES
1010
1011 * problem.c: Add table entry for the problem code
1012 PR_1_FEATURE_LARGE_FILES.
1013
1014 * pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only
1015 a problem for directory inodes. (Since it is also
1016 i_size_high now.) If there are no large_files, then
1017 clear the LARGE_FLAG feature flag. If there are
1018 large_files, but the LARGE_FLAG feature flag is not set,
1019 complain and offer to fix it.
1020 (check_blocks): Add support to deal with non-directory
1021 inodes that have i_size_high set (i.e., large_files).
1022 Don't give an error if a directory has preallocated
1023 blocks, to support the DIR_PREALLOC feature.
1024 (process_block, process_bad_block): The blockcnt variable
1025 is a type of blkcnt_t, for conversion to the new
1026 block_iterate2.
1027
1028 * pass2.c (process_bad_inode): A non-zero i_dir_acl field is only
1029 a problem for directory inodes. (Since it is also
1030 i_size_high now.)
1031
1032 * message.c (expand_inode_expression): Print a 64-bits of the
1033 inode size for non-directory inodes. (Directory inodes
1034 can only use a 32-bit directory acl size, since
1035 i_size_high is shared with i_dir_acl.) Add sanity check
1036 so that trying to print out the directory acl on a
1037 non-directory inode will print zero.
1038 (expand_percent_expression): %B and %N, which print
1039 pctx->blkcount and pctx->num, can now be 64 bit
1040 variables. Print them using the "%lld" format if
1041 EXT2_NO_64_TYPE is not defined.
1042
1043 * e2fsck.h: Add the large_flagsfield to the e2fsck context.
1044
1045 * e2fsck.c (e2fsck_reset_context): Clear the large_flags
1046 field.
1047
Theodore Ts'ob6f79831998-03-09 13:10:37 +00001048Sun Mar 8 23:08:08 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1049
1050 * pass3.c (fix_dotdot_proc):
1051 * pass2.c (check_dot, check_dotdot, check_name, check_dir_block):
1052 * message.c (expand_dirent_expression): Mask off the high eight
1053 bits of the directory entry's name_len field, so that it
1054 can be used for other purposes.
1055
Theodore Ts'o2df1f6a1998-02-27 05:03:48 +00001056Fri Feb 27 00:01:39 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1057
1058 * e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't
1059 include EXT2_FLAG_RESTART anymore, we need to adjust this
1060 routine so that it *does* return in the case of it seeing
1061 EXT2_FLAG_RESTART.
1062
1063 * pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group
1064 done callback function, which may set context abort
1065 flags. So we need to test the context abort flags after
1066 we call ext2_get_next_inode().
1067 (process_inodes): If we abort due out of process_inodes,
1068 do a clean exit by breaking out of the for loop instead of
1069 just returning.
1070
1071 * e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be
1072 considered a SIGNAL mask (i.e., requiring an immediate
1073 abort of processing to restart). FLAG_RESTART just means
1074 that we want to restart once pass 1 is complete.
1075
Theodore Ts'oa02ce9d1998-02-24 20:22:23 +00001076Tue Feb 24 15:19:40 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1077
1078 * Change the progress function to return an integer; if returns 1,
1079 then the progress function is expected to have set the
1080 e2fsck context flag signalling a user abort, and the
1081 caller should also initiate a user abort.
1082
Theodore Ts'o63c49691998-02-20 05:24:59 +00001083Tue Feb 17 19:03:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1084
1085 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call
1086 end_problem_latch() unless there was actually a problem
1087 latched. Simplifies semantics of the latch processing.
1088
Theodore Ts'o43139321998-02-16 22:34:46 +00001089Mon Feb 16 17:31:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1090
1091 * e2fsck.h: Add new field, priv_data to the e2fsck context
1092 structure. It should be used by callers of the e2fsck
1093 functions only, and not by anything in e2fsck itself.
1094
1095Mon Feb 7 17:31:04 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1096
1097 * super.c: Instead of call ext2fs_get_device_size(), define and call
1098 e2fsck_get_device_size(). (This function may be stubbed
1099 out in special versions of e2fsck.)
1100
1101 * pass3.c, pass4.c: Remove extra calls to the progress function
1102 that weren't needed.
1103
1104 * mke2fs.8.in: Update man page to note that the format of the bad
1105 block file is the same as the one generated by badblocks.
1106
Theodore Ts'o54be2cc1998-02-01 12:58:48 +00001107Sun Feb 1 07:57:14 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1108
1109 * dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed.
1110
1111 * e2fsck.h: Include <time.h> since it is needed
1112
1113 * super.c: If EXT2_SKIP_UUID is defined, then skip the UUID
1114 processing.
1115
Theodore Ts'o24dd4021998-02-01 00:16:40 +00001116Tue Jan 20 15:37:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1117
1118 * unix.c (main): In the case where the filesystem revision is too
1119 high, print the message about the superblock possibly
1120 being corrupt.
1121
1122 * e2fsck.8.in: Add expanded comments about how the -b option
1123 works.
1124
Theodore Ts'o54dc7ca1998-01-19 14:50:49 +00001125Sat Jan 17 13:02:16 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1126
1127 * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
1128 the ext2-specific header files are in a flat directory.
1129
1130 * dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
1131 super.c, swapfs.c, unix.c: Explicitly cast all assignments
1132 from void * to be compatible with C++.
1133
1134Tue Jan 6 11:30:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1135
1136 * unix.c (sync_disk): Remove sync_disk and calls to that function,
1137 since ext2fs_close() now takes care of this.
1138
1139Mon Dec 29 14:45:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1140
1141 * pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
1142 ehandler.c, unix.c: Change use of private to be priv_data,
1143 to avoid C++ reserved name clash.
1144
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001145Fri Nov 28 09:30:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1146
1147 * dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead
1148 of e2fsck_get_num_dirs, which has been removed.
1149
1150Tue Nov 25 15:54:35 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1151
1152 * Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want
1153 to compile and install flushb.
1154
Theodore Ts'o7fdfabd1997-11-24 11:51:17 +00001155Mon Nov 24 06:48:00 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1156
1157 * pass1.c (e2fsck_pass1_check_device_inode): For now, only check
1158 to make sure the extra i_blocks in a device are cleared if
1159 the immutable flag is set.
1160
1161 * util.c (print_resource_track): Fix typo which caused the
1162 time/resource tracking to print "Pass 1 :" instead of
1163 "Pass 1: ".
1164
Theodore Ts'ob8647fa1997-11-20 21:52:43 +00001165Thu Nov 20 16:02:23 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1166
1167 * pass3.c (expand_directory): Fix bug which could cause core dump
1168 when expanding the directory, and the bitmaps hadn't yet
1169 been read in. Also, only use ext2fs_write_dir_block when
1170 writing a directory block, not when writing out a fresh
1171 indirect block.
1172
Theodore Ts'o8039c481997-11-19 21:39:13 +00001173Wed Nov 19 16:15:44 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1174
1175 * pass1.c (process_bad_block): Fix bug where first_block wasn't
1176 getting incremented, which caused user to get a
1177 "Programming error?" warning if there was a bad block in a
1178 non-primary superblock/group_descriptor. Also fixed
1179 another bug so that ext2fs_bg_has_super() is consulted, to
1180 avoid problems when using a filesystem with the
1181 sparse_groups option set and there are bad blocks at the
1182 beginning of a group which doesn't have a superblock.
1183
Theodore Ts'of8188ff1997-11-14 05:23:04 +00001184Thu Nov 6 16:10:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1185
1186 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the
1187 progress indicator function.
1188
1189 * pass1.c (scan_callback): Add call to the progress feedback
1190 function (if it exists).
1191
1192Tue Nov 4 09:45:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1193
1194 * super.c (check_super_block): Skip the device size check if the
1195 get_device_size returns EXT2_EXT_UNIMPLEMENTED.
1196
1197 * iscan.c (main): Don't use fatal_error() anymore.
1198
1199 * pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of
1200 calling fatal_error(0).
1201
1202 * problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
1203 PR_3_NO_ROOT_INODE_ABORT): New problem codes.
1204
1205 * problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
1206
1207 * problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
1208
1209 * problemP.h: New file which separates out the private fix_problem
1210 data structures.
1211
1212 * util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
1213 swapfs.c util.c: allocate_memory() now takes a e2fsck
1214 context as its first argument, and rename it to be
1215 e2fsck_allocate_memory().
1216
Theodore Ts'o08b21301997-11-03 19:42:40 +00001217Mon Nov 3 14:35:29 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1218
Theodore Ts'o68227541997-11-04 04:25:22 +00001219 * unix.c (main): Add a special case check for the error code EROFS
1220 and display an appropriate error message for this case.
1221
Theodore Ts'o08b21301997-11-03 19:42:40 +00001222 * [lots of files]: Change ext2fs_read_inode, ext2fs_write_inode
1223 to take the e2fsck context as their first argument.
1224 Change dir_info.c routines to take an e2fsck_context,
1225 renamed them to start with e2fsck_ to avoid namespace
1226 issues, and changed them to store the directory
1227 information inside the e2fsck context.
1228 Added e2fsck_run() which calls all of the e2fsck passes in
1229 the correct order, and which handles the return of abort
1230 codes. Added abort processing, both via setjmp/longjmp
1231 and via flags in the e2fsck context. Use a flag in the
1232 e2fsck context instead of the restart_e2fsck global
1233 variable. Change uses of free and malloc to
1234 ext2fs_free_mem and ext2fs_get_mem.
1235
Theodore Ts'o291c9041997-10-31 06:17:08 +00001236Fri Oct 31 01:12:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1237
1238 * pass1.c, pass3.c: Rename new error codes to _ET_ in them for
1239 consistency.
1240
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001241Sat Oct 25 00:10:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1242
1243 * pass3.c (get_lost_and_found): Check error return of
1244 EXT2_FILE_NOT_FOUND instead of ENOTDIR
1245
1246 * pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY
1247 instead of ENOTDIR
1248
Theodore Ts'o622f5f21997-10-24 04:18:21 +00001249Fri Oct 24 00:12:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1250
Theodore Ts'o519149f1997-10-25 03:49:49 +00001251 * unix.c (PRS): Make the variable which getopt returns into be
1252 an int, so that it won't lose on platforms where char is
1253 unsigned.
1254
Theodore Ts'o622f5f21997-10-24 04:18:21 +00001255 * pass1b.c (clone_file): Fix bug in error reporting in the case
1256 where cs.errcode is non-zero.
1257
Theodore Ts'ob2da22d1997-10-20 01:16:35 +00001258Sun Oct 19 21:12:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1259
Theodore Ts'o8bf191e1997-10-20 01:38:32 +00001260 * pass*.c, super.c, unix.c, util.c, e2fsck.h: Place #ifdef
1261 RESOURCE_TRACK around code which uses init_resource_track
1262 and print_resource_track. (Not all systems have timeval)
1263
Theodore Ts'ob2da22d1997-10-20 01:16:35 +00001264 * super.c: Remove excess #includes which are not necessary.
1265
1266 * e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H
1267
Theodore Ts'o1b6bf171997-10-03 17:48:10 +00001268Fri Oct 3 13:40:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1269
1270 * pass*.c, super.c: Massive changes to avoid using printf and
1271 com_err routines. All diagnostic messages are now routed
1272 through the fix_problem interface.
1273
1274Sat Sep 6 17:13:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1275
1276 * pass2.c (check_dir_block): Check for duplicate '.' and '..'
1277 entries.
1278
1279 * problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and
1280 PR_2_DUP_DOT_DOT.
1281
1282Tue Sep 2 09:04:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1283
1284 * problem.c: Added new problem codes for some of the
1285 superblock corruption checks, and for the pass header
1286 messages. ("Pass 1: xxxxx")
1287
1288 * util.c (print_resource_track): Now takes a description
1289 argument.
1290
1291Mon Aug 25 10:23:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1292
1293 * super.c, unix.c, e2fsck.c: New files to separate out the
1294 operating-specific operations out from e2fsck.c.
1295 e2fsck.c now contains the global e2fsck context management
1296 routines, and super.c contains the "pass 0" initial
1297 validation of the superblock and global block group
1298 descriptors.
1299
1300 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate
1301 (nearly) all global variables and moved them to the e2fsck
1302 context structure.
1303
1304 * problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT,
1305 PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS,
1306 PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK
1307
Theodore Ts'o7cf73dc1997-08-14 17:17:16 +00001308Thu Aug 14 10:55:21 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1309
1310 * message.c: Add compression for the word "Illegal"
1311
1312 * problem.c: Added entries for PR_2_BAD_CHAR_DEV and
1313 PR_2_BAD_BLOCK_DEV
1314
1315Wed Aug 13 09:55:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1316
1317 * pass1.c (pass1, check_device_inode), pass2.c
1318 (process_bad_inode): Use a more stringent test for a valid
1319 device.
1320
Theodore Ts'oa47b66e1997-08-10 23:02:21 +00001321Sun Aug 10 18:58:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1322
1323 * e2fsck.c (check_mount): Add stronger warning message about the
1324 perils of running e2fsck on a mounted filesystem.
1325
Theodore Ts'o024996c1997-06-17 05:38:35 +00001326Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1327
1328 * Release of E2fsprogs 1.11
1329
Theodore Ts'oda2e97f1997-06-12 04:28:07 +00001330Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1331
1332 * pass1.c (mark_table_blocks): Mark the superblock and group
1333 descriptor blocks first, so that any conflicts between
1334 these and the bitmap or inode table blocks is noticed.
1335
1336 * problem.c: Fix message printed out when a block or inode bitmap
1337 conflicts with other fs data, has the correct group number
1338 in it.
1339
Theodore Ts'o7ac02a51997-06-11 18:32:35 +00001340Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1341
1342 * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate.
1343
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001344Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1345
Theodore Ts'o583ccdc1997-05-09 03:06:31 +00001346 * e2fsck.8.in: Fix minor typos and grammer oops found by Bill
1347 Hawes (whawes@star.net).
1348
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001349 * badblocks.c (read_bad_blocks_file): Pass the blocksize to the
1350 bad blocks command so that all of the filesystem gets
1351 tested in the case where the blocksize 2048 or 4096.
1352
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001353Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1354
1355 * Release of E2fsprogs version 1.10
1356
1357Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1358
1359 * pass1b.c (pass1b): While scanning for inodes, simply skip inodes
1360 where ext2fs_get_next_inode returns the
1361 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error.
1362
1363Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1364
1365 * Release of E2fsprogs version 1.09
1366
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001367Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1368
1369 * Release of E2fsprogs version 1.08
1370
Theodore Ts'o521e3681997-04-29 17:48:10 +00001371Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1372
1373 * pass1b.c (clone_file_block): If we clone a directory, we need to
1374 update the dblist entry so that we check (and correct) the
1375 right directory block.
1376
1377Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1378
1379 * pass1.c (process_block): Don't clear blocks references to
1380 filesystem metadata; let pass 1B handle this case.
1381
1382 * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA.
1383
1384 * pass1b.c (pass1d): Deal with a block which is shared with
1385 filesystem metadata.
1386
1387 * e2fsck.h: Make block_illegal_map be a global variable
1388
1389Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1390
1391 * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super
1392 feature.
1393 (get_backup_sb): New function which attempts to obtain the
1394 correct backup superblock (if possible).
1395
1396Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1397
1398 * e2fsck.c (main): Check the version of the library, and warn if
1399 the library is out of date; this happens generally due to
1400 users who manually install e2fsprogs.
1401
1402 * pass1.c (pass1_get_blocks): If the passed in inode number for
1403 get_blocks isn't what we're expecting pass back
1404 EXT2_ET_CALLBACK_NOT_HANDLED.
1405
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001406Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1407
1408 * Release of E2fsprogs version 1.07
1409
1410Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1411
1412 * icount.c: New file which implements an inode count abstraction.
1413 This significantly reduces amount of memory needed to
1414 check really large filesystems.
1415
1416 * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount
1417 abstraction.
1418
1419Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1420
1421 * dirinfo.c (dir_info_iter): New function which allows iteration
1422 over the directories in the dir_info map.
1423
1424 * pass3.c (pass3, check_directory): Speed up pass 3 by iterating
1425 over all directories in the dir_info structure, instead of
1426 iterating all inodes looking for directories, and then
1427 looking up the directories using get_dir_info().
1428
1429Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1430
1431 * pass1.c (pass1, process_block):
1432 * pass2.c (pass2): Use the ext2_dblist abstraction instead of
1433 manual code to manage the directory block list information.
1434
1435 * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c
1436 (deallocate_inode): Call the ext2 library routine
1437 ext2_inode_has_valid_blocks() instead of
1438 inode_has_valid_blocks().
1439
1440 * swapfs.c (swap_inodes): Add check so that we don't try to call
1441 swap_inode_blocks unless the inode has valid blocks.
1442 (Otherwise a long fast symlink might cause
1443 swap_inode_blocks to erroneously get called.)
1444
1445Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1446
1447 * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and
1448 PR_2_DOT_DOT_NULL_TERM.
1449
1450 * pass2.c (check_dot, check_dot_dot): Make sure the new . and
1451 .. entries are null-terminated, since the 2.0 kernel
1452 requires this (for no good reason).
1453
1454Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1455
1456 * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so
1457 that we can recover from missing inode tables.
1458
1459 * dirinfo.c (get_dir_info): If there are no directories in the
1460 dir_info abstraction, don't core dump (because dir_info is
1461 NULL).
1462
1463 * e2fsck.c (main): Don't try using the backup superblocks if there
1464 aren't any.
1465 (check_super_block): If there are illegal inode table or
1466 bitmaps, set the filesystem as being in error.
1467
1468Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1469
1470 * pass2.c (check_dir_block): Added check to make sure that rec_len
1471 is a a multiple of 4 (so that the directory entries are
1472 4-byte aligned).
1473
1474Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1475
1476 * Makefile.in (uninstall): Uninstall all programs in the PROGS
1477 line.
1478 (PROGS): Don't build and install the extend program by
1479 default.
1480
1481
1482Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1483
1484 * pass1.c (process_inodes): Make sure the stashed_ino variable is
1485 saved and restored as well.
1486 (pass1): For fast sym links, skip the check_blocks
1487 processing step altogether.
1488
1489Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1490
1491 * problem.c, message.c: New files, to completely refurbish how
1492 filesystem problems are reported to the user. The
1493 diagnostic messages are now encoded out in an easily
1494 customizable, extensible format. The messages printed out
1495 in preen mode are all on one line, and contain the device
1496 name.
1497
1498Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1499
1500 * swapfs.c (swap_inodes): When swapping a filesystem, ignore
1501 deleted files.
1502
1503 * pass1.c (pass1): Ignore missing inode table errors during the
1504 scan, and just skip past those inodes.
1505
1506 * pass3.c (check_root): Remove root_ino argument, and assume that
1507 the root inode must be EXT2_ROOT_INO. Move responsibility
1508 of setting the parent of the root inode in the directory
1509 inode structure to pass2().
1510
1511 * pass2.c (check_dir_block): Don't allow links to the root
1512 directory.
1513
1514 * dirinfo.c (add_dir_info): Remove last argument to add_dir_info,
1515 since the inode is no longer used.
1516
1517Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1518
1519 * e2fsck.c (main): If the superblock magic number is wrong, or the
1520 block group fails a sanity check, then automatically
1521 restart trying to use the backup superblocks.
1522
1523 * pass1.c (mark_table_blocks): Make the inode tables ahead of
1524 everything else; in the case where a bitmap block overlays
1525 the inode table, the inode table should take precedence.
1526
1527 * pass2.c (maybe_clear_entry): Make the deleted/unused error
1528 message fit on one line, since the error can happen during
1529 a preen pass. (We eventually need to revamp the whole
1530 e2fsck error reporting and prompting system, but that's a
1531 job for another day.)
1532
1533Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1534
1535 * e2fsck.c (main): Read in the list badblocks into fs->badblocks
1536 for the benefit of the inode scan functions.
1537
1538 * pass1.c (pass1): If ext2fs_get_next_inode() returns an error
1539 indicating that an inode is in a bad block, mark that
1540 inode as being used, as well as in the inode "bb" map.
1541
1542 * pass2.c (maybe_clear_entry): New function which generalizes the
1543 error cases when a directory entry needs to be cleared.
1544 (check_dir_block): If an inode is in the "bb" map, offer
1545 to clear the directory entry, since the inode is in a bad
1546 block.
1547
1548 * pass4.c (pass4): If an inode is marked as used, but is is marked
1549 in the "bb" map, don't process it as a disconnected inode.
1550
1551Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1552
1553 * Release of E2fsprogs version 1.06
1554
Theodore Ts'o5c576471997-04-29 15:29:49 +00001555Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1556
1557 * e2fsck.c (main): Print out the version number of the shared
1558 library when using the -V option.
1559
1560 * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for
1561 consistency's sake.
1562
1563 * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write
1564 out the backup superblocks when we know we have a valid
1565 filesystem.
1566
1567Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1568
1569 * util.c (preenhalt): Make it explicit on preenhalt that running
1570 e2fsck manually means without the -a or -p flag.
1571
1572Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1573
1574 * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode.
1575 (Linux/FT actually sets the mode bits, so we have to
1576 handle it specially.)
1577
1578 * e2fsck.c (check_if_skip): Print a message if the filesystem is
1579 just dirty, so that the user knows that it's about to be
1580 checked (since this will take a while).
1581
1582Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1583
1584 * pass4.c: If a disconnected inode is zero-length, prompt to
1585 delete it instead of connecting it to lost+found.
1586
1587Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1588
1589 * Release of E2fsprogs version 1.05
1590
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001591Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1592
1593 * pass4.c (pass4): If the user refuses to connect an unattached
1594 inode to lost+found, don't try to set i_links_count. This
1595 is bad, since if the user says yes, the inode will be
1596 marked as unused, which is not necessarily the right
1597 thing, especially since the rest of the cleanup doesn't
1598 happen here.
1599
1600 * pass2.c (deallocate_inode): Set inode_link_info[ino] when
1601 dellocating an inode. (Not strictly necessary, but...)
1602
1603 * pass4.c (pass4): Add "bonehead" explanation to the "programming
1604 error" message.
1605
1606Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1607
1608 * e2fsck.c (PRS,main): Added new options -s and -S. -s will
1609 byte-swap the filesystem so that it is normalized. -S
1610 will byte-swap the filesystem regardless of its current
1611 byte-order.
1612
1613 * swapfs.c: New file, which will byte-swap a filesystem.
1614
1615Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1616
1617 * pass1.c (pass1): Change handling on files with non-zero dtime
1618 and non-zero i_link_count; before we treated them as
1619 deleted file per botched ext2 0.3c kernel behavior. We
1620 now clear dtime instead.
1621
1622Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1623
1624 * e2fsck.c (main): If e2fsck sets the clean bit, even if
1625 nothing else is changed, make sure FSCK_NONDESTRUCT is
1626 set (since after all having the filesystem set to
1627 invalid is an error. :-)
1628
1629Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1630
1631 * pass1.c (process_block): Make sure that meta data doesn't get
1632 accidentally set in the dir_blocks array (which could
1633 happen in some error condtions).
1634
1635 * pass1.c (pass1):
1636 * pass2.c (process_bad_inode): Check for fragments in a
1637 OS-independent fashion.
1638
1639Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1640
1641 * e2fsck.c (check_if_skip): Close the filesystem when skipping the
1642 cleanup for the filesystem.
1643
1644Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1645
1646 * e2fsck.c: Improve corrupt_msg, so that it's less confusing.
1647
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001648Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1649
1650 * Release of E2fsprogs version 1.04
1651
1652Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1653
1654 * e2fsck.c (relocate_hint): Issue a hint that the user may wish to
1655 try "e2fsck -b 8193" before allowing e2fsck to relocate
1656 inode table blocks.
1657
1658 * Makefile.in (e2fsck): Build e2fsck statically or dynamically
1659 depending on the option to configure. Added targets for
1660 e2fsck.static and e2fsck.shared for people who want to
1661 build a static or shared variant manually.
1662
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001663Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1664
1665 * Release of E2fsprogs version 1.03
1666
1667Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu>
1668
1669 * e2fsck.c (show_stats): Don't use floating point to display
1670 percentage of non-contiguous files, as different libc
1671 handle result truncation differently, and this causes the
1672 test suite to bomb out depending on which libc you are
1673 using.
1674
1675 * util.c (allocate_memory): Fix error message to omit extraneous
1676 %%s.
1677
1678Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu>
1679
1680 * pass4.c (pass4):
1681 * pass2.c (check_dir_block):
1682 * pass1.c (pass1): Add support for dynamic first inode revision.
1683
1684Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu>
1685
1686 * pass3.c (check_root): Fix spelling typo
1687
1688Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu>
1689
1690 * e2fsck.c (check_super_block): If the superblock fails certain
1691 internal consistency checks, exit with a fatal error after
1692 printing the "superblock is corrupt message".
1693
Theodore Ts'o74becf31997-04-26 14:37:06 +00001694Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1695
1696 * Release of E2fsprogs version 1.02
1697
1698Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu>
1699
1700 * pass1.c (process_block): Check to see if a file is "fragmented".
1701 i.e., non-contiguous. Note that any file which is larger
1702 than the block group is guaranteed to be non-contiguous.
1703 We may want to use a different hueristic for deciding
1704 whether or not a file is "fragmented".
1705
1706 * e2fsck.c (show_stats): Print statistics of how many
1707 non-contiguous files are on the system.
1708
1709Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu>
1710
1711 * badblocks.c (read_bad_blocks_file, test_disk): Fold
1712 functionality of test_disk() (which runs badblocks) into
1713 read_bad_blocks_file(); test_disk() now calls
1714 read_bad_blocks_file() with a NULL bad_blocks_file
1715 argument.
1716
1717Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu>
1718
1719 * e2fsck.c (check_mount): Use #if defined(__linux__) instead of
1720 #if defined(linux). The latter won't work if we're
1721 compiling -ansi.
1722
Theodore Ts'o297f47a1997-04-26 14:25:20 +00001723Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu>
1724
1725 * e2fsck.c (check_mount): For Linux systems, the check to see if
1726 the root is mounted read-only has to be done for all
1727 filesystems, not just for the root filesystem, due to the
1728 way that some /etc/rc scripts are set up.
1729
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001730Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu>
1731
1732 * Makefile.in (install): Strip programs when they are installed.
1733 (e2fsck): Build e2fsck statically.
1734
1735Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu>
1736
1737 * util.c (preenhalt): Preenhalt now takes an argument, which is an
1738 ext2fs_filsys; this allows it to set the EXT2_ERROR_FS
1739 flag in the superblock in cases where preenhalt is called.
1740 All calls to preenhalt() were changed to either
1741 preenhalt(fs) or preenhalt(NULL) in a few cases where the
1742 fs pointer was not available. (Most notable, for block
1743 read/write errors.)
1744
1745Mon Sep 4 21:41:03 1995 Remy Card <card@bbj>
1746
1747 * ehandler.c:
1748 util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it.
1749
1750Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu>
1751
1752 * e2fsck.c (show_stats): Show statistics about how many inodes
1753 have indirect, doubly indirect, and triply indirect
1754 blocks. Allow up to 8 digits for statistics, instead of
1755 merely 6, so things look pretty for large filesystems.
1756
1757 * pass1.c (pass1): Keep statistics about indirect, doubly
1758 indirect, and triply indirect blocks.
1759
1760 * pass1.c (unwind_pass1): Clear the above statistics when unwinding
1761 pass 1.
1762
1763Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl>
1764
1765 * util.c, ehandler.c: Move #include of <sys/resource.h> after
1766 #include of "e2fsck.h", since sys/resource.h may depend on
1767 sys/time.h, which is #included in e2fsck.h.
1768
1769Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu>
1770
1771 * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted()
1772 function to determine if the device is mounted.
1773
1774 * e2fsck.c (main): Add better error messages if ext2fs_open()
1775 fails.
1776
1777Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu>
1778
1779 * pass1.c (check_blocks): If we're clearing a directory, clear
1780 pb.is_dir so we don't do the following check of making
1781 sure the directory size matches; this is pointless, since
1782 we've already cleared the inode.
1783
1784Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1785
1786 * pass1.c (bad_primary_block): New function, called by
1787 process_bad_block, which explains the facts of life to the
1788 user when a block in the primary superblock or primary
1789 group descriptors is bad.
1790
1791 * pass2.c (check_dot): Handle the case where the first directory
1792 entry is used, but not ".".
1793
1794 * pass2.c (check_dotdot): Handle the case where the second directory
1795 entry is used, but is not "..".
1796
1797Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1798
1799 * e2fsck.c (check_super_block): Get the size of the physical
1800 device and if it is smaller than the reported size of the
1801 filesystem, report an error.
1802
1803Sat Aug 12 03:39:18 1995 Remy Card <card@bbj>
1804
1805 * e2fsck.c (check_if_skip): Print the number of allocated files and
1806 blocks on clean filesystems.
1807
1808Fri Aug 11 14:15:36 1995 Remy Card <card@bbj>
1809
1810 * e2fsck.8: Updated date and version number.
1811
1812Thu Aug 10 14:26:01 1995 Remy Card <card@bbj>
1813
1814 * pass1.c (check_blocks): Check that directory size matches *exactly*
1815 the count of allocated blocks.
1816
1817Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl>
1818
1819 * pass1b.c (pass1d): Free the shared[] array when we're done with
1820 it to avoid a memory leak.
1821
1822 * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the
1823 block_dup_map.
1824
1825 * pass2.c (process_bad_inode): When clearing the inode, make sure
1826 the pathname is freed, to prevent a memory leak.
1827
1828 * pass5.c (check_inode_bitmaps): Free free_array and dir_array
1829 when we're finished with them.
1830 (check_block_bitmaps): Free free_array when we're finished
1831 with them.
1832
1833 * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when
1834 linking the executable.
1835
1836 * pass2.c (process_bad_inode): Even on OS's that don't support the
1837 fragment fields, make sure the Linux equivalent fields are
1838 set to zero. If an OS wants to reuse these fields, which
1839 is probably a bad idea (although we may get desperate in
1840 the future) this code will have to be changed.
1841
1842 * pass1.c (dir_block_cmp): If the block numbers are equal, compare
1843 on the inode field, and then blockcnt field. This is just
1844 to keep the ordering of dir_blocks the same on all
1845 platforms when there are more than on missing directory
1846 blocks, which are indicated directories with holes, which
1847 are indicated with the block number being set to zero.
1848
1849Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1850
1851 * pass1.c (check_blocks, process_block): check_blocks() modified
1852 to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if
1853 the inode is a directory. process_block() now checks to
1854 see if a directory has a "hole", or missing block. If so,
1855 this fact is recorded in the directory block list so that
1856 the problem can be resolved in pass #2.
1857
1858 * pass2.c (allocate_dir_block): Added allocate_dir_block() to
1859 allocate new blocks for directories with "holes". Called
1860 out of check_dir_block if a block in the directory block
1861 list is zero.
1862
1863 * pass3.c (get_lost_and_found): Move location of free(block) to
1864 prevent possible memory leak.
1865
1866Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1867
1868 * pass2.c (check_dir_block): Use a automatic, fixed-saize array
1869 instead of alloca() --- alloca is not portable! Check to
1870 make sure the filename is not longer than EXT2_NAME_LEN,
1871 and offer to fix it by truncating it, since it should
1872 never happen.
1873
1874 * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is
1875 not portable!! In any case putenv() in some systems must
1876 take a static character array or malloc()'ed memory;
1877 passing memory allocated using alloca() to putenv() is not
1878 advisable.
1879
1880 * pass2.c (check_dot, check_dotdot): Use malloc() instead of
1881 alloca() --- alloca() is not portable!!!
1882
1883Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu>
1884
1885 * pass1b.c (pass1c):
1886 * pass3.c (check_root, get_lost_and_found):
1887 * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block
1888 to read/write the directory block.
1889
1890Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu>
1891
1892 * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to
1893 make sure VMIN and VTIME are set correct.
1894
1895Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu>
1896
1897 * pass1.c (mark_block_used): Change to be an inline function.
1898 Assume that the block validity checks are already done,
1899 and use the fast variant of the bitmap functions.
1900
1901Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu>
1902
1903 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the
1904 bounds of the bitmaps in advance, and then use the fast
1905 variant of e2fs_test_{block,inode}_bitmap.
1906
1907 * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since
1908 the bounds checking has already been done earlier.
1909
1910Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu>
1911
1912 * pass1.c (pass1): Allocate and free the block_illegal_map, which
1913 is used for shortcut processing in process_block.
1914 (mark_table_blocks): Initialize block_illegal_map with the
1915 filesystem blocks.
1916 (describe_illegal_block): New helper function that
1917 describes why a block is illegal.
1918 (process_block): Use block_illegal_map as a shortcut
1919 to determine whether a block is bad. Use
1920 describe_illegal_block to print out why the block is illegal.
1921
1922Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl)
1923
1924 * flushb.c: Don't include <linux/fs.h> if it doesn't exist.
1925
1926 * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or
1927 <mntent.h> if they don't exist. (Mostly so that "make
1928 depend" works.)
1929
1930 * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if
1931 it exists).
1932
1933 * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't
1934 exist.
1935
1936Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1937
1938 * pass2.c (process_bad_inode, check_for_zero_long,
1939 check_for_zero_char): Change long to u32, and char to u8.
1940
1941Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1942
1943 * util.c (inode_has_valid_blocks):
1944 * pass2.c (process_bad_inode):
1945 * pass1.c (pass1, check_blocks, pass1_check_directory): Use
1946 LINUX_S_IS* instead of S_IS*.
1947
1948 * e2fsck.h: Don't #include <sys/stat.h>
1949
1950 * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although
1951 this program is pretty much useless if BLKFLSBUF isn't
1952 supported.)
1953
1954 * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is
1955 used.
1956
1957Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1958
1959 * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca
1960 to allocate space for file names instead of using fixed size buffers.
1961 (process_bad_inode): Only check inode frag fields if
1962 HAVE_EXT2_FRAGS is defined (by configure).
1963 * pass1.c (pass1): Only check the inode frag fields if
1964 HAVE_EXT2_FRAGS is defined (by configure).
1965
1966 * e2fsck.c (check_mount): Only check for a mounted filesystem if
1967 HAVE_MNTENT_H is defined (by configure).
1968 (PRS): Use alloca to allocate the new path string, instead of
1969 having a fixed size buffer (which was the wrong size anyway).
1970 (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl
1971 is defined.
1972
1973 * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is
1974 defined (by configure).
1975
1976 * Makefile.in: Rewritten to conform to GNU coding standards and
1977 support separate compilation directories.
1978
1979Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr>
1980
1981 * pass1.c (pass1): Test the mode in reserved inodes (must be zero).
1982
Theodore Ts'of3db3561997-04-26 13:34:30 +00001983Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost>
1984
1985 * pass1.c (unwind_pass1): Clear the file type statistics counter
1986 when pass 1 needs to be restarted from scratch.
1987
1988 * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were
1989 being reallocated to blocks in the next block group,
1990 instead of the current block grup.
1991
1992 * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever
1993 inode.i_links_count is set.
1994
1995Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11)
1996
1997 * pass1.c (process_block): Add checks for if the block is
1998 trepassing on a superblock or group descriptor table.
1999
2000Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu>
2001
2002 * main.c (corrupt_msg): Extend the message which is printed out
2003 when the superblock is corrupt, to include the suggestion
2004 of using the -b option to specify an alternate superblock.
2005
2006Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11)
2007
2008 * badblocks.c (read_bad_blocks_file): If we are adding or
2009 replacing bad blocks in the bad blocks inode, sanity check
2010 the bad block inode first, and clear out any illegal blocks.
2011
2012 * pass2.c (check_name): Don't bomb out if the attempt to get the
2013 pathname of the containing directory returns an error; the
2014 directory may be too badly damaged to expect that
2015 ext2fs_get_pathname will always succeed. Use "???" if the
2016 pathname can't be obtained (it's only for a printf to the
2017 user anyway).
2018
2019 The name of the containing directory and the bad filename
2020 were incorrectly interchanged in the user message. Fixed.
2021
2022 * pass2.c (check_name, check_dir_block): Use a common static
2023 string for the unknown pathname.
2024
2025Mon Nov 7 22:30:54 1994 Remy Card <card@bbj>
2026
2027 * Fixed lots of printf formats to make sure that block and inode
2028 numbers are printed as unsigned integers.
2029
2030Mon Oct 24 14:10:46 1994 (tytso@rsx-11)
2031
2032 * pass5.c (check_block_end): Fix calculation of how the last block
2033 in the block bitmap should be calculated.
2034
2035Wed Sep 7 10:01:13 1994 (tytso@rsx-11)
2036
2037 * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to
2038 be an ext2fs_inode_bitmap, and free it properly.
2039
2040 * e2fsck.h
2041 * e2fsck.c (main): Folded in Remy Card's changes to add a revision
2042 level to the superblock.
2043
2044Wed Aug 17 22:00:20 1994 Remy Card (card@bbj)
2045
2046 * e2fsck.c (usage): Fixed bogus usage message.
2047
2048Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11)
2049
2050 * pass1.c (process_bad_block): Fixed bug so that blocks in the
2051 backup superblocks and group descriptors are handled gracefully.
2052