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