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