blob: b569938ec489f96a304076b5cfa90e3acf21d92d [file] [log] [blame]
Theodore Ts'o5a679c81998-12-03 16:40:38 +000011998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
2
3 * Makefile.in: Updated dependencies.
4
51998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
6
7 * pass3.c (get_lost_and_found): If the filesystem is not opened
8 read-only, then force /lost+found to be created if it is
9 not present.
10
11 * problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen
12 operation.
13
Theodore Ts'o1dde43f1998-11-14 04:18:28 +0000141998-10-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
15
16 * unix.c (main): Move ext2fs_close() after e2fsck_free_context()
17 since e2fsck_free_context may reference data in ctx->fs.
18
19 * e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL
20 before checking ctx->fs->dblist.
21
221998-10-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
23
24 * pass1.c (e2fsck_pass1): Use the device check subroutine on
25 FIFO's and Socket's, so that we catch bogus immutable inodes.
26
27 * pass2.c (process_bad_inode): Process bad socket and fifo's.
28
29 * problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and
30 PR_2_BAD_SOCKET.
31
Theodore Ts'o7f813ba1998-09-03 01:26:03 +0000321998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
33
34 * problem.c: Add PR_3_NO_DIRINFO error code.
35
36 * super.c (check_super_value): Rename min and max to min_val and
37 max_val to avoid possible cpp macro conflicts.
38
39 * pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid
40 possible cpp macro conflicts.
41
42 * pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible
43 cpp macro conflicts.
44 (check_directory): Fix logic to avoid possible core dump
45 in the case of ext2fs_get_dir_info returning NULL. (By
46 the time we get here, it should never happen, but...).
47 Also simply/streamline the control flow of the function.
48
Theodore Ts'o24fc5031998-08-26 15:23:31 +0000491998-08-17 Theodore Ts'o <tytso@rsts-11.mit.edu>
50
51 * unix.c (check_if_skip): Move the "not cleanly mounted" check
52 ahead of the maximal mount and too long since checked tests.
53 (reserve_stdio_fds): Make sure 0,1,2 file descriptors are
54 open, so that we don't open the filesystem using the same
55 file descriptor as stdout or stderr.
56
Theodore Ts'of75c28d1998-08-01 04:18:06 +0000571998-08-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
58
59 * pass2.c (e2fsck_pass2): Fix the progress accounting so that we
60 get to 100%.
61
62 * pass3.c (e2fsck_pass3): Change progress accounting to be
63 consistent with the other e2fsck passes.
64
65 * e2fsck.c (e2fsck_run): At the end of each pass, call the
66 progress function with the pass number set to zero.
67
68 * unix.c (e2fsck_update_progress): If the pass number is zero,
69 ignore the call, since that indicates that we just want to
70 deallocate any progress structures.
71
Theodore Ts'o8144d671998-07-09 05:33:18 +0000721998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
73
Theodore Ts'o4a5fa191998-07-09 05:42:45 +000074 * Release of E2fsprogs 1.12
75
761998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
77
Theodore Ts'o8144d671998-07-09 05:33:18 +000078 * unix.c (main): Fix typo in checking the incompat feature set; it
79 should be checked against EXT2_LIB_FEATURE_INCOMPAT_SUPP.
80
Theodore Ts'o1fad9041998-07-07 05:44:43 +0000811998-07-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
82
83 * badblocks.c (test_disk): Don't clear the existing bad blocks
84 list when using e2fsck -c, since it may cause blocks with
85 marginal errors to be dropped from the bad blocks list.
86
Theodore Ts'o874b4d21998-07-06 14:33:12 +000087Mon Jul 6 10:32:11 1998 Theodre Ts'o <tytso@lurch.mit.edu>
88
89 * pass1.c (e2fsck_pass1): Use ext2fs_sb structure for
90 compatibility with older kernels.
91
Theodore Ts'o818180c1998-06-27 05:11:14 +0000921998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu>
93
94 * unix.c (e2fsck_update_progress): Remove unused variables.
95
Theodore Ts'o9d1bd3d1998-06-10 20:45:22 +0000961998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
97
98 * pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
99 collision with LFS API.
100
101 * pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is
102 properly initialized.
103 (e2fsck_pass1): Don't allow the the boot loader inode to
104 be a directory (clear the inode mode field if so).
105
Theodore Ts'oefac9a11998-05-07 05:02:00 +00001061998-05-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
107
108 * unix.c (PRS): Added new option -C, which causes e2fsck to print
109 progress updates so that callers can keep track of the
110 completion progress of e2fsck. Designed for use by
111 progress, except for -C 0, which prints a spinning report
112 which may be useful for some users.
113
114 * pass5.c (e2fsck_pass5): Use a finer-grained progress reporting
115 scheme (useful for larger filesystems).
116
117 * e2fsck.h: Add progress_fd and progress_pos, for use by the Unix
118 progress reporting functions.
119
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00001201998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
121
122 * pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the
123 appropriate return type for comparison functions for qsort.
124
125 * e2fsck.h: Add #ifdef protection for unistd.h
126
127 * super.c: Remove header files already included by e2fsck.h
128
Theodore Ts'o76f875d1998-04-27 01:41:13 +00001291998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
130
131 * dirinfo.c (e2fsck_add_dir_info): Update function to pass the old
132 size of the memory to be resized to ext2fs_resize_mem().
133
Theodore Ts'o7e44f241998-04-01 03:16:29 +00001341998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
135
136 * Makefile.in: Change to use new installation directory variables
137 convention. Fix uninstall rules to take $(DESTDIR) into
138 account. Remove cat8dir from the installdirs target,
139 since modern man package don't necessarily put the cat
140 directory in /usr/man/cat?.
141
Theodore Ts'o17dba281998-03-30 01:16:26 +00001421998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
143
144 * super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an
145 extern in e2fsck.h to prevent -Wall warnings.
146
147 * pass4.c (e2fsck_pass4): Remove unused variable 'j'.
148
1491998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
150
151 * super.c (check_super_block): Fix broken superblock sanity check
152 when calculating blocks_per_group if s_log_frag_size !=
153 s_log_block_size. Since we don't support fragments, this
154 isn't a bug deal, but it's good to get it fixed.
155
Theodore Ts'o246501c1998-03-24 16:22:38 +00001561998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
157
158 * unix.c: Fix bug in check of feature set, to make sure we can
159 really fix this filesystem.
160
161 * problem.h: Make blkcount type to be of type blkcnt_t. Make the
162 num field be a 64 bit type. Add the problem code
163 PR_1_FEATURE_LARGE_FILES
164
165 * problem.c: Add table entry for the problem code
166 PR_1_FEATURE_LARGE_FILES.
167
168 * pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only
169 a problem for directory inodes. (Since it is also
170 i_size_high now.) If there are no large_files, then
171 clear the LARGE_FLAG feature flag. If there are
172 large_files, but the LARGE_FLAG feature flag is not set,
173 complain and offer to fix it.
174 (check_blocks): Add support to deal with non-directory
175 inodes that have i_size_high set (i.e., large_files).
176 Don't give an error if a directory has preallocated
177 blocks, to support the DIR_PREALLOC feature.
178 (process_block, process_bad_block): The blockcnt variable
179 is a type of blkcnt_t, for conversion to the new
180 block_iterate2.
181
182 * pass2.c (process_bad_inode): A non-zero i_dir_acl field is only
183 a problem for directory inodes. (Since it is also
184 i_size_high now.)
185
186 * message.c (expand_inode_expression): Print a 64-bits of the
187 inode size for non-directory inodes. (Directory inodes
188 can only use a 32-bit directory acl size, since
189 i_size_high is shared with i_dir_acl.) Add sanity check
190 so that trying to print out the directory acl on a
191 non-directory inode will print zero.
192 (expand_percent_expression): %B and %N, which print
193 pctx->blkcount and pctx->num, can now be 64 bit
194 variables. Print them using the "%lld" format if
195 EXT2_NO_64_TYPE is not defined.
196
197 * e2fsck.h: Add the large_flagsfield to the e2fsck context.
198
199 * e2fsck.c (e2fsck_reset_context): Clear the large_flags
200 field.
201
Theodore Ts'ob6f79831998-03-09 13:10:37 +0000202Sun Mar 8 23:08:08 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
203
204 * pass3.c (fix_dotdot_proc):
205 * pass2.c (check_dot, check_dotdot, check_name, check_dir_block):
206 * message.c (expand_dirent_expression): Mask off the high eight
207 bits of the directory entry's name_len field, so that it
208 can be used for other purposes.
209
Theodore Ts'o2df1f6a1998-02-27 05:03:48 +0000210Fri Feb 27 00:01:39 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
211
212 * e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't
213 include EXT2_FLAG_RESTART anymore, we need to adjust this
214 routine so that it *does* return in the case of it seeing
215 EXT2_FLAG_RESTART.
216
217 * pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group
218 done callback function, which may set context abort
219 flags. So we need to test the context abort flags after
220 we call ext2_get_next_inode().
221 (process_inodes): If we abort due out of process_inodes,
222 do a clean exit by breaking out of the for loop instead of
223 just returning.
224
225 * e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be
226 considered a SIGNAL mask (i.e., requiring an immediate
227 abort of processing to restart). FLAG_RESTART just means
228 that we want to restart once pass 1 is complete.
229
Theodore Ts'oa02ce9d1998-02-24 20:22:23 +0000230Tue Feb 24 15:19:40 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
231
232 * Change the progress function to return an integer; if returns 1,
233 then the progress function is expected to have set the
234 e2fsck context flag signalling a user abort, and the
235 caller should also initiate a user abort.
236
Theodore Ts'o63c49691998-02-20 05:24:59 +0000237Tue Feb 17 19:03:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
238
239 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call
240 end_problem_latch() unless there was actually a problem
241 latched. Simplifies semantics of the latch processing.
242
Theodore Ts'o43139321998-02-16 22:34:46 +0000243Mon Feb 16 17:31:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
244
245 * e2fsck.h: Add new field, priv_data to the e2fsck context
246 structure. It should be used by callers of the e2fsck
247 functions only, and not by anything in e2fsck itself.
248
249Mon Feb 7 17:31:04 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
250
251 * super.c: Instead of call ext2fs_get_device_size(), define and call
252 e2fsck_get_device_size(). (This function may be stubbed
253 out in special versions of e2fsck.)
254
255 * pass3.c, pass4.c: Remove extra calls to the progress function
256 that weren't needed.
257
258 * mke2fs.8.in: Update man page to note that the format of the bad
259 block file is the same as the one generated by badblocks.
260
Theodore Ts'o54be2cc1998-02-01 12:58:48 +0000261Sun Feb 1 07:57:14 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
262
263 * dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed.
264
265 * e2fsck.h: Include <time.h> since it is needed
266
267 * super.c: If EXT2_SKIP_UUID is defined, then skip the UUID
268 processing.
269
Theodore Ts'o24dd4021998-02-01 00:16:40 +0000270Tue Jan 20 15:37:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
271
272 * unix.c (main): In the case where the filesystem revision is too
273 high, print the message about the superblock possibly
274 being corrupt.
275
276 * e2fsck.8.in: Add expanded comments about how the -b option
277 works.
278
Theodore Ts'o54dc7ca1998-01-19 14:50:49 +0000279Sat Jan 17 13:02:16 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
280
281 * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
282 the ext2-specific header files are in a flat directory.
283
284 * dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
285 super.c, swapfs.c, unix.c: Explicitly cast all assignments
286 from void * to be compatible with C++.
287
288Tue Jan 6 11:30:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
289
290 * unix.c (sync_disk): Remove sync_disk and calls to that function,
291 since ext2fs_close() now takes care of this.
292
293Mon Dec 29 14:45:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
294
295 * pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
296 ehandler.c, unix.c: Change use of private to be priv_data,
297 to avoid C++ reserved name clash.
298
Theodore Ts'o5be8dc21997-12-01 18:24:10 +0000299Fri Nov 28 09:30:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
300
301 * dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead
302 of e2fsck_get_num_dirs, which has been removed.
303
304Tue Nov 25 15:54:35 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
305
306 * Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want
307 to compile and install flushb.
308
Theodore Ts'o7fdfabd1997-11-24 11:51:17 +0000309Mon Nov 24 06:48:00 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
310
311 * pass1.c (e2fsck_pass1_check_device_inode): For now, only check
312 to make sure the extra i_blocks in a device are cleared if
313 the immutable flag is set.
314
315 * util.c (print_resource_track): Fix typo which caused the
316 time/resource tracking to print "Pass 1 :" instead of
317 "Pass 1: ".
318
Theodore Ts'ob8647fa1997-11-20 21:52:43 +0000319Thu Nov 20 16:02:23 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
320
321 * pass3.c (expand_directory): Fix bug which could cause core dump
322 when expanding the directory, and the bitmaps hadn't yet
323 been read in. Also, only use ext2fs_write_dir_block when
324 writing a directory block, not when writing out a fresh
325 indirect block.
326
Theodore Ts'o8039c481997-11-19 21:39:13 +0000327Wed Nov 19 16:15:44 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
328
329 * pass1.c (process_bad_block): Fix bug where first_block wasn't
330 getting incremented, which caused user to get a
331 "Programming error?" warning if there was a bad block in a
332 non-primary superblock/group_descriptor. Also fixed
333 another bug so that ext2fs_bg_has_super() is consulted, to
334 avoid problems when using a filesystem with the
335 sparse_groups option set and there are bad blocks at the
336 beginning of a group which doesn't have a superblock.
337
Theodore Ts'of8188ff1997-11-14 05:23:04 +0000338Thu Nov 6 16:10:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
339
340 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the
341 progress indicator function.
342
343 * pass1.c (scan_callback): Add call to the progress feedback
344 function (if it exists).
345
346Tue Nov 4 09:45:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
347
348 * super.c (check_super_block): Skip the device size check if the
349 get_device_size returns EXT2_EXT_UNIMPLEMENTED.
350
351 * iscan.c (main): Don't use fatal_error() anymore.
352
353 * pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of
354 calling fatal_error(0).
355
356 * problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
357 PR_3_NO_ROOT_INODE_ABORT): New problem codes.
358
359 * problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
360
361 * problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
362
363 * problemP.h: New file which separates out the private fix_problem
364 data structures.
365
366 * util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
367 swapfs.c util.c: allocate_memory() now takes a e2fsck
368 context as its first argument, and rename it to be
369 e2fsck_allocate_memory().
370
Theodore Ts'o08b21301997-11-03 19:42:40 +0000371Mon Nov 3 14:35:29 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
372
Theodore Ts'o68227541997-11-04 04:25:22 +0000373 * unix.c (main): Add a special case check for the error code EROFS
374 and display an appropriate error message for this case.
375
Theodore Ts'o08b21301997-11-03 19:42:40 +0000376 * [lots of files]: Change ext2fs_read_inode, ext2fs_write_inode
377 to take the e2fsck context as their first argument.
378 Change dir_info.c routines to take an e2fsck_context,
379 renamed them to start with e2fsck_ to avoid namespace
380 issues, and changed them to store the directory
381 information inside the e2fsck context.
382 Added e2fsck_run() which calls all of the e2fsck passes in
383 the correct order, and which handles the return of abort
384 codes. Added abort processing, both via setjmp/longjmp
385 and via flags in the e2fsck context. Use a flag in the
386 e2fsck context instead of the restart_e2fsck global
387 variable. Change uses of free and malloc to
388 ext2fs_free_mem and ext2fs_get_mem.
389
Theodore Ts'o291c9041997-10-31 06:17:08 +0000390Fri Oct 31 01:12:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
391
392 * pass1.c, pass3.c: Rename new error codes to _ET_ in them for
393 consistency.
394
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000395Sat Oct 25 00:10:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
396
397 * pass3.c (get_lost_and_found): Check error return of
398 EXT2_FILE_NOT_FOUND instead of ENOTDIR
399
400 * pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY
401 instead of ENOTDIR
402
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000403Fri Oct 24 00:12:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
404
Theodore Ts'o519149f1997-10-25 03:49:49 +0000405 * unix.c (PRS): Make the variable which getopt returns into be
406 an int, so that it won't lose on platforms where char is
407 unsigned.
408
Theodore Ts'o622f5f21997-10-24 04:18:21 +0000409 * pass1b.c (clone_file): Fix bug in error reporting in the case
410 where cs.errcode is non-zero.
411
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000412Sun Oct 19 21:12:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
413
Theodore Ts'o8bf191e1997-10-20 01:38:32 +0000414 * pass*.c, super.c, unix.c, util.c, e2fsck.h: Place #ifdef
415 RESOURCE_TRACK around code which uses init_resource_track
416 and print_resource_track. (Not all systems have timeval)
417
Theodore Ts'ob2da22d1997-10-20 01:16:35 +0000418 * super.c: Remove excess #includes which are not necessary.
419
420 * e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H
421
Theodore Ts'o1b6bf171997-10-03 17:48:10 +0000422Fri Oct 3 13:40:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
423
424 * pass*.c, super.c: Massive changes to avoid using printf and
425 com_err routines. All diagnostic messages are now routed
426 through the fix_problem interface.
427
428Sat Sep 6 17:13:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
429
430 * pass2.c (check_dir_block): Check for duplicate '.' and '..'
431 entries.
432
433 * problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and
434 PR_2_DUP_DOT_DOT.
435
436Tue Sep 2 09:04:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
437
438 * problem.c: Added new problem codes for some of the
439 superblock corruption checks, and for the pass header
440 messages. ("Pass 1: xxxxx")
441
442 * util.c (print_resource_track): Now takes a description
443 argument.
444
445Mon Aug 25 10:23:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
446
447 * super.c, unix.c, e2fsck.c: New files to separate out the
448 operating-specific operations out from e2fsck.c.
449 e2fsck.c now contains the global e2fsck context management
450 routines, and super.c contains the "pass 0" initial
451 validation of the superblock and global block group
452 descriptors.
453
454 * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate
455 (nearly) all global variables and moved them to the e2fsck
456 context structure.
457
458 * problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT,
459 PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS,
460 PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK
461
Theodore Ts'o7cf73dc1997-08-14 17:17:16 +0000462Thu Aug 14 10:55:21 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
463
464 * message.c: Add compression for the word "Illegal"
465
466 * problem.c: Added entries for PR_2_BAD_CHAR_DEV and
467 PR_2_BAD_BLOCK_DEV
468
469Wed Aug 13 09:55:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
470
471 * pass1.c (pass1, check_device_inode), pass2.c
472 (process_bad_inode): Use a more stringent test for a valid
473 device.
474
Theodore Ts'oa47b66e1997-08-10 23:02:21 +0000475Sun Aug 10 18:58:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
476
477 * e2fsck.c (check_mount): Add stronger warning message about the
478 perils of running e2fsck on a mounted filesystem.
479
Theodore Ts'o024996c1997-06-17 05:38:35 +0000480Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
481
482 * Release of E2fsprogs 1.11
483
Theodore Ts'oda2e97f1997-06-12 04:28:07 +0000484Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
485
486 * pass1.c (mark_table_blocks): Mark the superblock and group
487 descriptor blocks first, so that any conflicts between
488 these and the bitmap or inode table blocks is noticed.
489
490 * problem.c: Fix message printed out when a block or inode bitmap
491 conflicts with other fs data, has the correct group number
492 in it.
493
Theodore Ts'o7ac02a51997-06-11 18:32:35 +0000494Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
495
496 * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate.
497
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000498Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
499
Theodore Ts'o583ccdc1997-05-09 03:06:31 +0000500 * e2fsck.8.in: Fix minor typos and grammer oops found by Bill
501 Hawes (whawes@star.net).
502
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000503 * badblocks.c (read_bad_blocks_file): Pass the blocksize to the
504 bad blocks command so that all of the filesystem gets
505 tested in the case where the blocksize 2048 or 4096.
506
Theodore Ts'oa29f4d31997-04-29 21:26:48 +0000507Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
508
509 * Release of E2fsprogs version 1.10
510
511Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
512
513 * pass1b.c (pass1b): While scanning for inodes, simply skip inodes
514 where ext2fs_get_next_inode returns the
515 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error.
516
517Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
518
519 * Release of E2fsprogs version 1.09
520
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000521Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
522
523 * Release of E2fsprogs version 1.08
524
Theodore Ts'o521e3681997-04-29 17:48:10 +0000525Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
526
527 * pass1b.c (clone_file_block): If we clone a directory, we need to
528 update the dblist entry so that we check (and correct) the
529 right directory block.
530
531Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
532
533 * pass1.c (process_block): Don't clear blocks references to
534 filesystem metadata; let pass 1B handle this case.
535
536 * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA.
537
538 * pass1b.c (pass1d): Deal with a block which is shared with
539 filesystem metadata.
540
541 * e2fsck.h: Make block_illegal_map be a global variable
542
543Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
544
545 * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super
546 feature.
547 (get_backup_sb): New function which attempts to obtain the
548 correct backup superblock (if possible).
549
550Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
551
552 * e2fsck.c (main): Check the version of the library, and warn if
553 the library is out of date; this happens generally due to
554 users who manually install e2fsprogs.
555
556 * pass1.c (pass1_get_blocks): If the passed in inode number for
557 get_blocks isn't what we're expecting pass back
558 EXT2_ET_CALLBACK_NOT_HANDLED.
559
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000560Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
561
562 * Release of E2fsprogs version 1.07
563
564Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
565
566 * icount.c: New file which implements an inode count abstraction.
567 This significantly reduces amount of memory needed to
568 check really large filesystems.
569
570 * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount
571 abstraction.
572
573Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
574
575 * dirinfo.c (dir_info_iter): New function which allows iteration
576 over the directories in the dir_info map.
577
578 * pass3.c (pass3, check_directory): Speed up pass 3 by iterating
579 over all directories in the dir_info structure, instead of
580 iterating all inodes looking for directories, and then
581 looking up the directories using get_dir_info().
582
583Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
584
585 * pass1.c (pass1, process_block):
586 * pass2.c (pass2): Use the ext2_dblist abstraction instead of
587 manual code to manage the directory block list information.
588
589 * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c
590 (deallocate_inode): Call the ext2 library routine
591 ext2_inode_has_valid_blocks() instead of
592 inode_has_valid_blocks().
593
594 * swapfs.c (swap_inodes): Add check so that we don't try to call
595 swap_inode_blocks unless the inode has valid blocks.
596 (Otherwise a long fast symlink might cause
597 swap_inode_blocks to erroneously get called.)
598
599Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
600
601 * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and
602 PR_2_DOT_DOT_NULL_TERM.
603
604 * pass2.c (check_dot, check_dot_dot): Make sure the new . and
605 .. entries are null-terminated, since the 2.0 kernel
606 requires this (for no good reason).
607
608Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
609
610 * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so
611 that we can recover from missing inode tables.
612
613 * dirinfo.c (get_dir_info): If there are no directories in the
614 dir_info abstraction, don't core dump (because dir_info is
615 NULL).
616
617 * e2fsck.c (main): Don't try using the backup superblocks if there
618 aren't any.
619 (check_super_block): If there are illegal inode table or
620 bitmaps, set the filesystem as being in error.
621
622Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
623
624 * pass2.c (check_dir_block): Added check to make sure that rec_len
625 is a a multiple of 4 (so that the directory entries are
626 4-byte aligned).
627
628Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
629
630 * Makefile.in (uninstall): Uninstall all programs in the PROGS
631 line.
632 (PROGS): Don't build and install the extend program by
633 default.
634
635
636Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
637
638 * pass1.c (process_inodes): Make sure the stashed_ino variable is
639 saved and restored as well.
640 (pass1): For fast sym links, skip the check_blocks
641 processing step altogether.
642
643Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
644
645 * problem.c, message.c: New files, to completely refurbish how
646 filesystem problems are reported to the user. The
647 diagnostic messages are now encoded out in an easily
648 customizable, extensible format. The messages printed out
649 in preen mode are all on one line, and contain the device
650 name.
651
652Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
653
654 * swapfs.c (swap_inodes): When swapping a filesystem, ignore
655 deleted files.
656
657 * pass1.c (pass1): Ignore missing inode table errors during the
658 scan, and just skip past those inodes.
659
660 * pass3.c (check_root): Remove root_ino argument, and assume that
661 the root inode must be EXT2_ROOT_INO. Move responsibility
662 of setting the parent of the root inode in the directory
663 inode structure to pass2().
664
665 * pass2.c (check_dir_block): Don't allow links to the root
666 directory.
667
668 * dirinfo.c (add_dir_info): Remove last argument to add_dir_info,
669 since the inode is no longer used.
670
671Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
672
673 * e2fsck.c (main): If the superblock magic number is wrong, or the
674 block group fails a sanity check, then automatically
675 restart trying to use the backup superblocks.
676
677 * pass1.c (mark_table_blocks): Make the inode tables ahead of
678 everything else; in the case where a bitmap block overlays
679 the inode table, the inode table should take precedence.
680
681 * pass2.c (maybe_clear_entry): Make the deleted/unused error
682 message fit on one line, since the error can happen during
683 a preen pass. (We eventually need to revamp the whole
684 e2fsck error reporting and prompting system, but that's a
685 job for another day.)
686
687Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
688
689 * e2fsck.c (main): Read in the list badblocks into fs->badblocks
690 for the benefit of the inode scan functions.
691
692 * pass1.c (pass1): If ext2fs_get_next_inode() returns an error
693 indicating that an inode is in a bad block, mark that
694 inode as being used, as well as in the inode "bb" map.
695
696 * pass2.c (maybe_clear_entry): New function which generalizes the
697 error cases when a directory entry needs to be cleared.
698 (check_dir_block): If an inode is in the "bb" map, offer
699 to clear the directory entry, since the inode is in a bad
700 block.
701
702 * pass4.c (pass4): If an inode is marked as used, but is is marked
703 in the "bb" map, don't process it as a disconnected inode.
704
705Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
706
707 * Release of E2fsprogs version 1.06
708
Theodore Ts'o5c576471997-04-29 15:29:49 +0000709Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
710
711 * e2fsck.c (main): Print out the version number of the shared
712 library when using the -V option.
713
714 * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for
715 consistency's sake.
716
717 * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write
718 out the backup superblocks when we know we have a valid
719 filesystem.
720
721Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
722
723 * util.c (preenhalt): Make it explicit on preenhalt that running
724 e2fsck manually means without the -a or -p flag.
725
726Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
727
728 * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode.
729 (Linux/FT actually sets the mode bits, so we have to
730 handle it specially.)
731
732 * e2fsck.c (check_if_skip): Print a message if the filesystem is
733 just dirty, so that the user knows that it's about to be
734 checked (since this will take a while).
735
736Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
737
738 * pass4.c: If a disconnected inode is zero-length, prompt to
739 delete it instead of connecting it to lost+found.
740
741Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
742
743 * Release of E2fsprogs version 1.05
744
Theodore Ts'o1e3472c1997-04-29 14:53:37 +0000745Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
746
747 * pass4.c (pass4): If the user refuses to connect an unattached
748 inode to lost+found, don't try to set i_links_count. This
749 is bad, since if the user says yes, the inode will be
750 marked as unused, which is not necessarily the right
751 thing, especially since the rest of the cleanup doesn't
752 happen here.
753
754 * pass2.c (deallocate_inode): Set inode_link_info[ino] when
755 dellocating an inode. (Not strictly necessary, but...)
756
757 * pass4.c (pass4): Add "bonehead" explanation to the "programming
758 error" message.
759
760Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
761
762 * e2fsck.c (PRS,main): Added new options -s and -S. -s will
763 byte-swap the filesystem so that it is normalized. -S
764 will byte-swap the filesystem regardless of its current
765 byte-order.
766
767 * swapfs.c: New file, which will byte-swap a filesystem.
768
769Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
770
771 * pass1.c (pass1): Change handling on files with non-zero dtime
772 and non-zero i_link_count; before we treated them as
773 deleted file per botched ext2 0.3c kernel behavior. We
774 now clear dtime instead.
775
776Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
777
778 * e2fsck.c (main): If e2fsck sets the clean bit, even if
779 nothing else is changed, make sure FSCK_NONDESTRUCT is
780 set (since after all having the filesystem set to
781 invalid is an error. :-)
782
783Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
784
785 * pass1.c (process_block): Make sure that meta data doesn't get
786 accidentally set in the dir_blocks array (which could
787 happen in some error condtions).
788
789 * pass1.c (pass1):
790 * pass2.c (process_bad_inode): Check for fragments in a
791 OS-independent fashion.
792
793Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
794
795 * e2fsck.c (check_if_skip): Close the filesystem when skipping the
796 cleanup for the filesystem.
797
798Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
799
800 * e2fsck.c: Improve corrupt_msg, so that it's less confusing.
801
Theodore Ts'o62c06f71997-04-29 14:34:47 +0000802Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
803
804 * Release of E2fsprogs version 1.04
805
806Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
807
808 * e2fsck.c (relocate_hint): Issue a hint that the user may wish to
809 try "e2fsck -b 8193" before allowing e2fsck to relocate
810 inode table blocks.
811
812 * Makefile.in (e2fsck): Build e2fsck statically or dynamically
813 depending on the option to configure. Added targets for
814 e2fsck.static and e2fsck.shared for people who want to
815 build a static or shared variant manually.
816
Theodore Ts'o7f88b041997-04-26 14:48:50 +0000817Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
818
819 * Release of E2fsprogs version 1.03
820
821Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu>
822
823 * e2fsck.c (show_stats): Don't use floating point to display
824 percentage of non-contiguous files, as different libc
825 handle result truncation differently, and this causes the
826 test suite to bomb out depending on which libc you are
827 using.
828
829 * util.c (allocate_memory): Fix error message to omit extraneous
830 %%s.
831
832Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu>
833
834 * pass4.c (pass4):
835 * pass2.c (check_dir_block):
836 * pass1.c (pass1): Add support for dynamic first inode revision.
837
838Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu>
839
840 * pass3.c (check_root): Fix spelling typo
841
842Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu>
843
844 * e2fsck.c (check_super_block): If the superblock fails certain
845 internal consistency checks, exit with a fatal error after
846 printing the "superblock is corrupt message".
847
Theodore Ts'o74becf31997-04-26 14:37:06 +0000848Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
849
850 * Release of E2fsprogs version 1.02
851
852Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu>
853
854 * pass1.c (process_block): Check to see if a file is "fragmented".
855 i.e., non-contiguous. Note that any file which is larger
856 than the block group is guaranteed to be non-contiguous.
857 We may want to use a different hueristic for deciding
858 whether or not a file is "fragmented".
859
860 * e2fsck.c (show_stats): Print statistics of how many
861 non-contiguous files are on the system.
862
863Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu>
864
865 * badblocks.c (read_bad_blocks_file, test_disk): Fold
866 functionality of test_disk() (which runs badblocks) into
867 read_bad_blocks_file(); test_disk() now calls
868 read_bad_blocks_file() with a NULL bad_blocks_file
869 argument.
870
871Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu>
872
873 * e2fsck.c (check_mount): Use #if defined(__linux__) instead of
874 #if defined(linux). The latter won't work if we're
875 compiling -ansi.
876
Theodore Ts'o297f47a1997-04-26 14:25:20 +0000877Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu>
878
879 * e2fsck.c (check_mount): For Linux systems, the check to see if
880 the root is mounted read-only has to be done for all
881 filesystems, not just for the root filesystem, due to the
882 way that some /etc/rc scripts are set up.
883
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000884Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu>
885
886 * Makefile.in (install): Strip programs when they are installed.
887 (e2fsck): Build e2fsck statically.
888
889Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu>
890
891 * util.c (preenhalt): Preenhalt now takes an argument, which is an
892 ext2fs_filsys; this allows it to set the EXT2_ERROR_FS
893 flag in the superblock in cases where preenhalt is called.
894 All calls to preenhalt() were changed to either
895 preenhalt(fs) or preenhalt(NULL) in a few cases where the
896 fs pointer was not available. (Most notable, for block
897 read/write errors.)
898
899Mon Sep 4 21:41:03 1995 Remy Card <card@bbj>
900
901 * ehandler.c:
902 util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it.
903
904Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu>
905
906 * e2fsck.c (show_stats): Show statistics about how many inodes
907 have indirect, doubly indirect, and triply indirect
908 blocks. Allow up to 8 digits for statistics, instead of
909 merely 6, so things look pretty for large filesystems.
910
911 * pass1.c (pass1): Keep statistics about indirect, doubly
912 indirect, and triply indirect blocks.
913
914 * pass1.c (unwind_pass1): Clear the above statistics when unwinding
915 pass 1.
916
917Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl>
918
919 * util.c, ehandler.c: Move #include of <sys/resource.h> after
920 #include of "e2fsck.h", since sys/resource.h may depend on
921 sys/time.h, which is #included in e2fsck.h.
922
923Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu>
924
925 * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted()
926 function to determine if the device is mounted.
927
928 * e2fsck.c (main): Add better error messages if ext2fs_open()
929 fails.
930
931Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu>
932
933 * pass1.c (check_blocks): If we're clearing a directory, clear
934 pb.is_dir so we don't do the following check of making
935 sure the directory size matches; this is pointless, since
936 we've already cleared the inode.
937
938Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
939
940 * pass1.c (bad_primary_block): New function, called by
941 process_bad_block, which explains the facts of life to the
942 user when a block in the primary superblock or primary
943 group descriptors is bad.
944
945 * pass2.c (check_dot): Handle the case where the first directory
946 entry is used, but not ".".
947
948 * pass2.c (check_dotdot): Handle the case where the second directory
949 entry is used, but is not "..".
950
951Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
952
953 * e2fsck.c (check_super_block): Get the size of the physical
954 device and if it is smaller than the reported size of the
955 filesystem, report an error.
956
957Sat Aug 12 03:39:18 1995 Remy Card <card@bbj>
958
959 * e2fsck.c (check_if_skip): Print the number of allocated files and
960 blocks on clean filesystems.
961
962Fri Aug 11 14:15:36 1995 Remy Card <card@bbj>
963
964 * e2fsck.8: Updated date and version number.
965
966Thu Aug 10 14:26:01 1995 Remy Card <card@bbj>
967
968 * pass1.c (check_blocks): Check that directory size matches *exactly*
969 the count of allocated blocks.
970
971Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl>
972
973 * pass1b.c (pass1d): Free the shared[] array when we're done with
974 it to avoid a memory leak.
975
976 * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the
977 block_dup_map.
978
979 * pass2.c (process_bad_inode): When clearing the inode, make sure
980 the pathname is freed, to prevent a memory leak.
981
982 * pass5.c (check_inode_bitmaps): Free free_array and dir_array
983 when we're finished with them.
984 (check_block_bitmaps): Free free_array when we're finished
985 with them.
986
987 * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when
988 linking the executable.
989
990 * pass2.c (process_bad_inode): Even on OS's that don't support the
991 fragment fields, make sure the Linux equivalent fields are
992 set to zero. If an OS wants to reuse these fields, which
993 is probably a bad idea (although we may get desperate in
994 the future) this code will have to be changed.
995
996 * pass1.c (dir_block_cmp): If the block numbers are equal, compare
997 on the inode field, and then blockcnt field. This is just
998 to keep the ordering of dir_blocks the same on all
999 platforms when there are more than on missing directory
1000 blocks, which are indicated directories with holes, which
1001 are indicated with the block number being set to zero.
1002
1003Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1004
1005 * pass1.c (check_blocks, process_block): check_blocks() modified
1006 to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if
1007 the inode is a directory. process_block() now checks to
1008 see if a directory has a "hole", or missing block. If so,
1009 this fact is recorded in the directory block list so that
1010 the problem can be resolved in pass #2.
1011
1012 * pass2.c (allocate_dir_block): Added allocate_dir_block() to
1013 allocate new blocks for directories with "holes". Called
1014 out of check_dir_block if a block in the directory block
1015 list is zero.
1016
1017 * pass3.c (get_lost_and_found): Move location of free(block) to
1018 prevent possible memory leak.
1019
1020Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1021
1022 * pass2.c (check_dir_block): Use a automatic, fixed-saize array
1023 instead of alloca() --- alloca is not portable! Check to
1024 make sure the filename is not longer than EXT2_NAME_LEN,
1025 and offer to fix it by truncating it, since it should
1026 never happen.
1027
1028 * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is
1029 not portable!! In any case putenv() in some systems must
1030 take a static character array or malloc()'ed memory;
1031 passing memory allocated using alloca() to putenv() is not
1032 advisable.
1033
1034 * pass2.c (check_dot, check_dotdot): Use malloc() instead of
1035 alloca() --- alloca() is not portable!!!
1036
1037Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu>
1038
1039 * pass1b.c (pass1c):
1040 * pass3.c (check_root, get_lost_and_found):
1041 * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block
1042 to read/write the directory block.
1043
1044Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu>
1045
1046 * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to
1047 make sure VMIN and VTIME are set correct.
1048
1049Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu>
1050
1051 * pass1.c (mark_block_used): Change to be an inline function.
1052 Assume that the block validity checks are already done,
1053 and use the fast variant of the bitmap functions.
1054
1055Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu>
1056
1057 * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the
1058 bounds of the bitmaps in advance, and then use the fast
1059 variant of e2fs_test_{block,inode}_bitmap.
1060
1061 * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since
1062 the bounds checking has already been done earlier.
1063
1064Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu>
1065
1066 * pass1.c (pass1): Allocate and free the block_illegal_map, which
1067 is used for shortcut processing in process_block.
1068 (mark_table_blocks): Initialize block_illegal_map with the
1069 filesystem blocks.
1070 (describe_illegal_block): New helper function that
1071 describes why a block is illegal.
1072 (process_block): Use block_illegal_map as a shortcut
1073 to determine whether a block is bad. Use
1074 describe_illegal_block to print out why the block is illegal.
1075
1076Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl)
1077
1078 * flushb.c: Don't include <linux/fs.h> if it doesn't exist.
1079
1080 * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or
1081 <mntent.h> if they don't exist. (Mostly so that "make
1082 depend" works.)
1083
1084 * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if
1085 it exists).
1086
1087 * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't
1088 exist.
1089
1090Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1091
1092 * pass2.c (process_bad_inode, check_for_zero_long,
1093 check_for_zero_char): Change long to u32, and char to u8.
1094
1095Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1096
1097 * util.c (inode_has_valid_blocks):
1098 * pass2.c (process_bad_inode):
1099 * pass1.c (pass1, check_blocks, pass1_check_directory): Use
1100 LINUX_S_IS* instead of S_IS*.
1101
1102 * e2fsck.h: Don't #include <sys/stat.h>
1103
1104 * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although
1105 this program is pretty much useless if BLKFLSBUF isn't
1106 supported.)
1107
1108 * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is
1109 used.
1110
1111Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1112
1113 * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca
1114 to allocate space for file names instead of using fixed size buffers.
1115 (process_bad_inode): Only check inode frag fields if
1116 HAVE_EXT2_FRAGS is defined (by configure).
1117 * pass1.c (pass1): Only check the inode frag fields if
1118 HAVE_EXT2_FRAGS is defined (by configure).
1119
1120 * e2fsck.c (check_mount): Only check for a mounted filesystem if
1121 HAVE_MNTENT_H is defined (by configure).
1122 (PRS): Use alloca to allocate the new path string, instead of
1123 having a fixed size buffer (which was the wrong size anyway).
1124 (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl
1125 is defined.
1126
1127 * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is
1128 defined (by configure).
1129
1130 * Makefile.in: Rewritten to conform to GNU coding standards and
1131 support separate compilation directories.
1132
1133Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr>
1134
1135 * pass1.c (pass1): Test the mode in reserved inodes (must be zero).
1136
Theodore Ts'of3db3561997-04-26 13:34:30 +00001137Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost>
1138
1139 * pass1.c (unwind_pass1): Clear the file type statistics counter
1140 when pass 1 needs to be restarted from scratch.
1141
1142 * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were
1143 being reallocated to blocks in the next block group,
1144 instead of the current block grup.
1145
1146 * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever
1147 inode.i_links_count is set.
1148
1149Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11)
1150
1151 * pass1.c (process_block): Add checks for if the block is
1152 trepassing on a superblock or group descriptor table.
1153
1154Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu>
1155
1156 * main.c (corrupt_msg): Extend the message which is printed out
1157 when the superblock is corrupt, to include the suggestion
1158 of using the -b option to specify an alternate superblock.
1159
1160Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11)
1161
1162 * badblocks.c (read_bad_blocks_file): If we are adding or
1163 replacing bad blocks in the bad blocks inode, sanity check
1164 the bad block inode first, and clear out any illegal blocks.
1165
1166 * pass2.c (check_name): Don't bomb out if the attempt to get the
1167 pathname of the containing directory returns an error; the
1168 directory may be too badly damaged to expect that
1169 ext2fs_get_pathname will always succeed. Use "???" if the
1170 pathname can't be obtained (it's only for a printf to the
1171 user anyway).
1172
1173 The name of the containing directory and the bad filename
1174 were incorrectly interchanged in the user message. Fixed.
1175
1176 * pass2.c (check_name, check_dir_block): Use a common static
1177 string for the unknown pathname.
1178
1179Mon Nov 7 22:30:54 1994 Remy Card <card@bbj>
1180
1181 * Fixed lots of printf formats to make sure that block and inode
1182 numbers are printed as unsigned integers.
1183
1184Mon Oct 24 14:10:46 1994 (tytso@rsx-11)
1185
1186 * pass5.c (check_block_end): Fix calculation of how the last block
1187 in the block bitmap should be calculated.
1188
1189Wed Sep 7 10:01:13 1994 (tytso@rsx-11)
1190
1191 * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to
1192 be an ext2fs_inode_bitmap, and free it properly.
1193
1194 * e2fsck.h
1195 * e2fsck.c (main): Folded in Remy Card's changes to add a revision
1196 level to the superblock.
1197
1198Wed Aug 17 22:00:20 1994 Remy Card (card@bbj)
1199
1200 * e2fsck.c (usage): Fixed bogus usage message.
1201
1202Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11)
1203
1204 * pass1.c (process_bad_block): Fixed bug so that blocks in the
1205 backup superblocks and group descriptors are handled gracefully.
1206