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