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