]>
Commit | Line | Data |
---|---|---|
c4e3d3f3 TT |
1 | 2003-08-01 Philipp Thomas <pthomas@suse.de> |
2 | ||
0c193f82 TT |
3 | * Include inttypes.h if present. New macros INT_TO_VOIDPTR and |
4 | VOIDPTR_TO_INT. Use them throughout for int<->void * | |
5 | casts to fix 64-bit warnings. | |
6 | ||
c4e3d3f3 TT |
7 | * dirinfo.c, dx_dirinfo.c, e2fsck.c, ea_refcount.c, journal.c, |
8 | message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c, | |
9 | pass5.c, super.c, swapfs.c: ext2fs_getmem(), | |
10 | ext2fs_free_mem(), and ext2fs_resize_mem() all now take a | |
11 | 'void *' instead of a 'void **' in order to avoid pointer | |
12 | aliasing problems with GCC 3.x. | |
13 | ||
9c7ec178 TT |
14 | 2003-07-25 Theodore Ts'o <tytso@mit.edu> |
15 | ||
16 | * Release of E2fsprogs 1.34 | |
17 | ||
48e6e813 TT |
18 | 2003-07-06 Theodore Ts'o <tytso@mit.edu> |
19 | ||
20 | * pass2.c: Fix gcc -Wall nitpicks (missing #include <string.h>) | |
21 | ||
22 | * dict.c, dict.h: Fix gcc -Wall nitpicks (indented cpp directives) | |
23 | ||
d3128ccb TT |
24 | 2003-06-8 Theodore Ts'o <tytso@mit.edu> |
25 | ||
26 | * problem.c: Fix spelling error. | |
27 | ||
113e405b TT |
28 | 2003-05-17 Theodore Ts'o <tytso@mit.edu> |
29 | ||
30 | * unix.c (show_stats), e2fsck.h: Use ngettext (abbreivated with | |
31 | the macro P_(str1, str2, n)) to simplify the statistics | |
32 | reporting. | |
33 | ||
2a29f135 TT |
34 | 2003-05-05 Theodore Ts'o <tytso@mit.edu> |
35 | ||
36 | * unix.c (main): If --enable-testio-debug is set, then use the | |
37 | test_io manager so we can watch what e2fsck is doing. | |
38 | ||
a04eba3f TT |
39 | 2003-05-03 Theodore Ts'o <tytso@mit.edu> |
40 | ||
ddc32a04 TT |
41 | * unix.c (show_stats): Remove uneeded use of _() around string |
42 | under #ifndef NLS | |
43 | ||
44 | * problem.c: Mark two strings (PR_1_RELOC_TO and | |
45 | PR_2_NON_UNIQUE_FILE) as not being printf format strings. | |
46 | Fix typo (doubled 'is') in PR_2_FILE_ACL_BAD. | |
47 | ||
a04eba3f TT |
48 | * Makefile.in: Add $(LIBINTL) to the link line so we can support |
49 | using the internal gettext library. | |
50 | ||
51 | * e2fsck.h: Add #ifndef protection around LOCALEDIR definition. | |
52 | ||
6177c41f TT |
53 | 2003-04-27 Theodore Ts'o <tytso@mit.edu> |
54 | ||
55 | * message.c (expand_at_expression): Fixed NLS support for message | |
56 | abbreviations. | |
57 | ||
71df0dc3 TT |
58 | 2003-04-21 Theodore Ts'o <tytso@mit.edu> |
59 | ||
60 | * Release of E2fsprogs 1.33 | |
61 | ||
520ead37 TT |
62 | 2003-04-19 Theodore Ts'o <tytso@mit.edu> |
63 | ||
64 | * rehash.c: Fix lint warnings by including string.h and ctype.h | |
65 | ||
66 | * pass2.c (dict_de_cmp): Fix lint warnings by using const pointers. | |
67 | ||
68 | * unix.c (e2fsck_simple_progress), e2fsck.h: Fix lint warnings by | |
69 | using const pointers. Remove unused variables. | |
70 | ||
12dd69f5 TT |
71 | 2003-04-17 Theodore Ts'o <tytso@mit.edu> |
72 | ||
73 | * rehash.c (name_cmp): Sort the deleted inodes to the end of the | |
74 | list, for portability to systems that whose qsort does not | |
75 | perform a stable sort. | |
76 | ||
bc34d6be TT |
77 | 2003-04-16 Theodore Ts'o <tytso@mit.edu> |
78 | ||
79 | * unix.c: Bracket progress bar output with control-A and control-B | |
80 | characters. These characters are used as in-band | |
81 | signalling to allow a logging program to filter out the | |
82 | progress bar. | |
908b785c TT |
83 | (PRS): Use setvbuf instead of setbuf to force stdout and |
84 | stderr to be non-buffered when the stdout/stderr are a pipe. | |
12dd69f5 TT |
85 | This fixes a cosmetic problem when using e2fsck under |
86 | logsave. | |
908b785c | 87 | |
fff45483 TT |
88 | 2003-04-12 Theodore Ts'o <tytso@mit.edu> |
89 | ||
90 | * unix.c: Add #ifdef around #include <sys/ioctl.h> | |
91 | ||
2a77a784 TT |
92 | 2003-04-05 Theodore Ts'o <tytso@mit.edu> |
93 | ||
94 | * super.c (check_super_block): Update the global free block and | |
95 | inode counters from the block group specific counters | |
96 | quietly. This is needed for an experimental patch which | |
97 | eliminates locking the entire filesystem when allocating | |
98 | blocks or inodes; if the filesystem is not unmounted | |
99 | cleanly, the global counts may not be accurate. | |
100 | ||
aa75eccc TT |
101 | 2003-03-17 Theodore Ts'o <tytso@mit.edu> |
102 | ||
103 | * util.c: Explicitly declare e2fsck_global_ctx as extern for the | |
104 | benefit of the Apple Darwin port. | |
105 | ||
1d2eef42 TT |
106 | 2003-03-15 Theodore Ts'o <tytso@mit.edu> |
107 | ||
108 | * rehash.c (e2fsck_rehash_dir): If user specified the -n option, | |
109 | skip trying to write out directory. | |
110 | (e2fsck_rehash_directories): Fix the percentage | |
111 | calculation in the progress bar. | |
112 | ||
b0700a1b TT |
113 | 2003-03-14 Theodore Ts'o <tytso@mit.edu> |
114 | ||
12dd69f5 TT |
115 | * problem.c, problem.h (PR_2_REPORT_DUP_DIRENT): Add new problem |
116 | code. | |
0926668d TT |
117 | |
118 | * pass2.c (check_dir_block): Check for duplicate filenames within | |
119 | a single directory block (because this is the easy case; | |
120 | we don't currently check for duplicates that span | |
121 | directory blocks, for now. Eventually for htree | |
122 | directories we can do this by searching for all directory | |
123 | blocks that have a hash overflow, and then searching the | |
124 | adjacent blocks to find all other potential duplicates.) | |
125 | ||
e71d8731 TT |
126 | * iscan.c, scantest.c, unix.c: And #ifdef protection around |
127 | #include of malloc.h | |
128 | ||
b0700a1b TT |
129 | * rehash.c (duplicate_search_and_fix): Now search for duplicates |
130 | filenames, and either prompt to remove a complete | |
131 | duplicate entry, or to rename a duplicate filename. | |
132 | (e2fsck_rehash_dir): Use a progress bar to report | |
133 | progress, and don't print all of the directory inodes as | |
134 | they are optimized. | |
135 | ||
136 | * problem.c, problem.h (PR_2_DUPLICATE_DIRENT, | |
137 | PR_2_NON_UNIQUE_FILE): New problem codes. | |
138 | ||
139 | * unix.c (e2fsck_simple_progress), e2fsck.h: New function which | |
140 | can be called to provide specialized progress bars that | |
141 | are not related to the top-level pass-based completion | |
142 | percentage. | |
143 | ||
144 | * pass3.c (e2fsck_adjust_inode_count), e2fsck.h: Export previously | |
145 | static function. | |
146 | ||
77be4d2d TT |
147 | 2003-03-06 <tytso@mit.edu> |
148 | ||
149 | * e2fsck.8.in: Fix minor nit in the -C option. (Addresses Debian | |
150 | bug #173612) | |
151 | ||
f364093b TT |
152 | 2003-03-01 Theodore Ts'o <tytso@mit.edu> |
153 | ||
154 | * Makefile.in, journal.c, unix.c: Use blkid functions to find the | |
155 | journal from the UUID, and to interpret the device | |
156 | specification. | |
157 | ||
158 | * e2fsck.c: Free the blkid_cache when releasing the e2fsck context | |
159 | structure. | |
160 | ||
161 | * e2fsck.h: If strnlen is not present, define it as a macro which | |
162 | calls e2fsck_strlen(). Add prototype for string_copy(). | |
163 | Add blkid_cache to e2fsck context, and make | |
164 | filesystem_name, device_name, and journal_name be | |
165 | non-const variables. | |
166 | ||
167 | * pass1.c, pass2.c: Remove static strnlen function | |
168 | ||
169 | * util.c (string_copy, e2fsck_strnlen): New functions | |
170 | ||
19445ef9 TT |
171 | 2003-01-29 Theodore Ts'o <tytso@mit.edu> |
172 | ||
173 | * unix.c (usage): Make descripton -c be a bit more explicit | |
174 | ||
4f489285 TT |
175 | 2003-01-22 Theodore Ts'o <tytso@mit.edu> |
176 | ||
177 | * pass1.c (check_blocks): Use the EXT2_I_SIZE macro. | |
178 | ||
b92ae153 TT |
179 | 2003-01-02 Theodore Ts'o <tytso@mit.edu> |
180 | ||
181 | * unix.c (main): Detect if there is an attempt to run the journal | |
182 | twice, and abort with an error if this is the case. | |
183 | (Address IBM Bugzilla bug #1226) | |
184 | ||
e34bf43a TT |
185 | 2002-12-18 Theodore Ts'o <tytso@mit.edu> |
186 | ||
187 | * pass2.c (strnlen): Provide strnlen if libc doesn't. | |
188 | ||
8161a748 TT |
189 | 2003-11-19 Theodore Ts'o <tytso@mit.edu> |
190 | ||
191 | * unix.c (PRS): Print an error if more than one of the -p/-a, -n | |
192 | or -y options are specified. | |
193 | ||
54779c66 TT |
194 | 2002-11-12 Theodore Ts'o <tytso@mit.edu> |
195 | ||
196 | * problem.c: Make HTREE problems PR_PREEN_OK, so that we don't | |
197 | abort an e2fsck after the filesystem has been mounted | |
198 | using the 2.4 ext2 codebase. | |
199 | ||
38513011 TT |
200 | 2002-11-09 Theodore Ts'o <tytso@mit.edu> |
201 | ||
202 | * Release of E2fsprogs 1.32 | |
203 | ||
ae65b29f TT |
204 | 2002-11-08 Theodore Ts'o <tytso@mit.edu> |
205 | ||
206 | * Release of E2fsprogs 1.31 | |
207 | ||
299d7424 TT |
208 | 2002-11-08 <tytso@snap.thunk.org> |
209 | ||
c1637bd3 TT |
210 | * unix.c (main): Fix a bug where e2fsck could erroneously mark a |
211 | filesystem as being valid if it was being checked and it | |
212 | is interrupted with a ^C. (Bug introduced in e2fsprogs | |
213 | 1.28.) | |
214 | ||
5e72cdbe TT |
215 | * unix.c (PRS), journal.c: Set the default level of journal |
216 | debugging to be 0, and allow the user to set the level of | |
217 | journal debugging by using the E2FSCK_JBD_DEBUG | |
218 | environment variable. | |
219 | ||
299d7424 TT |
220 | * pass1.c (new_table_block), super.c (check_super_block), swapfs.c |
221 | (swap_filesys): Clear EXT2_FLAG_MASTER_SB_ONLY to make | |
222 | sure the backup superblocks and group descriptors are | |
223 | updated when we make an important change to the | |
224 | superblocks and/or group descriptors. (i.e., generating a | |
225 | UUID, allocating filesystem metadata, or byte-swapping the | |
226 | filesystem.) | |
227 | ||
ee895139 TT |
228 | 2002-11-07 Theodore Ts'o <tytso@mit.edu> |
229 | ||
230 | * e2fsck.h, unix.c (main, check_mount): Fix e2fsck so that it | |
231 | returns the appropriate exit code, so that the boot | |
232 | scripts will be told that they need to automatically | |
233 | reboot. | |
234 | ||
5d823a47 TT |
235 | 2002-10-31 Theodore Ts'o <tytso@mit.edu> |
236 | ||
237 | * Release of E2fsprogs 1.30 | |
238 | ||
be93ef0c TT |
239 | 2002-10-31 Theodore Ts'o <tytso@mit.edu> |
240 | ||
b40ffd79 TT |
241 | * unix.c (usage), e2fsck.8.in: Add the -D option to the usage and |
242 | command synopsis. (Addresses Debian bug #167108) | |
243 | ||
be93ef0c TT |
244 | * pass1.c (e2fsck_pass1): Check the superblock write time to see |
245 | whether or not we can safely do the LOW_DTIME checks. | |
246 | (Addresses Sourceforge bug #620980) | |
247 | ||
76dd5e5c TT |
248 | 2002-10-30 Theodore Ts'o <tytso@mit.edu> |
249 | ||
482afc44 TT |
250 | * Makefile.in (install): Search all compression extensions when |
251 | deleting old man pages. | |
252 | ||
76dd5e5c TT |
253 | * pass1.c (mark_table_blocks): Fix bug in meta_bg support; only |
254 | mark blocks legacy group descriptor blocks up to | |
255 | s_first_meta_bg. | |
256 | ||
a49929b6 TT |
257 | 2002-10-20 Theodore Ts'o <tytso@valinux.com> |
258 | ||
259 | * pass1.c (mark_table_blocks): Add support for the meta_blockgroup | |
260 | filesystem format. | |
261 | ||
3e699064 TT |
262 | 2002-10-13 Theodore Ts'o <tytso@mit.edu> |
263 | ||
264 | * pass3.c (e2fsck_get_lost_and_found): Pass in mode 700 to | |
265 | ext2fs_new_inode(). | |
266 | ||
267 | * unix.c (show_stats): Fix format bug if NLS is in use. | |
268 | ||
269 | * journal.c, pass1.c, revoke.c, util.c: Fix gcc -Wall nits. | |
270 | ||
64aecc4d TT |
271 | 2002-10-08 Theodore Ts'o <tytso@mit.edu> |
272 | ||
273 | * pass3.c (e2fsck_get_lost_and_found): Create the lost+found | |
274 | directory with mode 0700. | |
275 | ||
8132d840 TT |
276 | 2002-10-02 Theodore Y. Ts'o <tytso@mit.edu> |
277 | ||
278 | * pass2.c (parse_int_node, check_dir_block): Add byte-swap | |
279 | functions around the htree code, so that it works on | |
280 | big-endian machines. | |
281 | ||
282 | * swapfs.c (swap_filesys): For PPC machines, byte-swap the bitmap, | |
283 | since PPC big-endian filesystems were historically wierd. | |
284 | This is just for the regression test, since no one | |
285 | actually uses them anymore... | |
286 | ||
ad4fa466 TT |
287 | 2002-09-30 Theodore Ts'o <tytso@mit.edu> |
288 | ||
289 | * problem.c, problem.h (PR_2_HTREE_BAD_LIMIT, | |
290 | PR_2_HTREE_BAD_COUNT, PR_2_HTREE_HASH_ORDER, | |
291 | PR_2_HTREE_BAD_DEPTH): Add new problem codes. | |
292 | ||
293 | * pass2.c (salvage_directory, check_dir_block): Avoid counting | |
294 | directory entries twice during a directory salvage. Make | |
295 | the salvaging algorithm smarter about directory entry size | |
296 | overruns. | |
297 | (parse_int_node): Add check to make sure the limit and | |
298 | count fields in the node headers are sane. Also check | |
299 | to make sure the hash table in ascending order. | |
300 | (pass2, htree_depth): For all leaf nodes, determine their | |
301 | depth in the tree, and make sure it matches with the depth | |
302 | in the htree root information. | |
303 | ||
fe5b72d1 TT |
304 | 2002-09-29 Theodore Ts'o <tytso@mit.edu> |
305 | ||
e8254bfd TT |
306 | * pass2.c (check_dir_block): Do a more paranoid check when trying |
307 | to determine whether or not a directory entry is a | |
308 | completely empty leaf block or leaf node. Otherwise | |
309 | e2fsck might get confused into thinking that a valid dxdir | |
310 | was corrupted. | |
311 | ||
fe5b72d1 TT |
312 | * rehash.c (e2fsck_rehash_dir): Apply patch from Christopher Li |
313 | which avoids creating an empty directory entry at the end | |
314 | of the directory block. This screws up earlier versions | |
315 | of the indexed directory patch. | |
316 | ||
e70ae99e TT |
317 | 2002-09-28 Theodore Ts'o <tytso@mit.edu> |
318 | ||
319 | * rehash.c (write_directory): Clear the index flag if by | |
320 | reoptimizing the directory, we bring it back into a | |
321 | non-indexed state. | |
322 | (e2fsck_rehash_dir): Allow directories that contain two | |
323 | blocks to be indexed. Otherwise when they grow, they | |
324 | never will be indexed by the kernel. | |
325 | ||
326 | * unix.c (main): Only update the master superblock; there's no | |
327 | point updating the backup superblocks, and it speeds up | |
328 | fsck slightly. | |
329 | ||
330 | * pass2.c (salvage_directory): New function called by | |
331 | check_dir_block() which is much more sophisticated about | |
332 | how it salvages corrupted filesystems. | |
333 | ||
c6633059 TT |
334 | 2001-09-24 Theodore Tso <tytso@mit.edu> |
335 | ||
336 | * Release of E2fsprogs 1.29 | |
337 | ||
cf3909ed TT |
338 | 2002-09-06 Theodore Ts'o <tytso@mit.edu> |
339 | ||
340 | * rehash.c (copy_dir_entries): Fix bug which caused corrupted | |
341 | directories if there are 4 or 8 bytes left over in a | |
342 | directory page when optimizing/reindexing a directory. | |
343 | ||
87ee8dca TT |
344 | 2001-08-31 Theodore Tso <tytso@thunk.org> |
345 | ||
346 | * Release of E2fsprogs 1.28 | |
347 | ||
ceecbc75 TT |
348 | 2002-08-31 Theodore Ts'o <tytso@mit.edu> |
349 | ||
350 | * ehandler.c (e2fsck_handle_read_error): If the user asks to | |
351 | ignore the error, offer to try forcing a write of the | |
352 | block to the disk; sometimes this will cause the drive to | |
353 | remap the bad block. | |
354 | ||
ea1959f0 TT |
355 | 2002-08-31 Theodore Ts'o <tytso@valinux.com> |
356 | ||
357 | * pass2.c (e2fsck_pass2): If this is a HTREE directory, sort the | |
358 | dblist so that the first block of all of the directories | |
359 | is handled first so we can read the hash version | |
360 | information. | |
361 | (check_dir_block): Examine the root node for correctness, | |
362 | and offer to clear it if it is not correct. Also copy the | |
363 | hash version to the dx_dir structure, so that the proper | |
364 | hash function can be used for other blocks in the | |
365 | directory. | |
366 | ||
367 | * problem.c, problem.h (PR_2_HTREE_BAD_ROOT): Add new problem code. | |
368 | ||
a3da9d1d TT |
369 | 2002-08-21 Theodore Ts'o <tytso@mit.edu> |
370 | ||
371 | * problem.c: Fix PR_1_RELOC_BLOCK_ALLOCATE message to explain that | |
372 | it is necessary to find contiguous blocks in a particular | |
373 | block group. | |
374 | ||
0684a4f3 TT |
375 | 2002-08-17 Theodore Ts'o <tytso@mit.edu> |
376 | ||
f044b4d8 TT |
377 | * e2fsck.8.in: Add clarifying text describing how e2fsck works |
378 | with ext3 filesytems. (Addresses Debian bug #145044). | |
379 | ||
380 | * pass1.c (handle_htree): Add support for EXT2_HASH_TEA | |
381 | ||
0684a4f3 TT |
382 | * e2fsck.h, e2fsck.c (e2fsck_allocate_context): Add new field to |
383 | the e2fsck context, ext_attr_ver, which specifies the EA | |
384 | format version. | |
385 | ||
386 | * unix.c (usage, parse_extended_opts, PRS), e2fsck.8.in: Add new | |
387 | option -E, which allows the users to specify extended | |
388 | options. Added ea_ver extended option. | |
389 | ||
390 | * pass1.c (e2fsck_pass1_check_device_inode): Add ext2_filsys | |
391 | argument to this function, so we can account for the | |
392 | presence of extended attribute blocks attached to device | |
393 | inodes. | |
394 | (e2fsck_pass1_check_symlink, e2fsck_pass1): Take into | |
395 | account the fact that symlinks can also have extended | |
396 | attribute blocks. | |
397 | (check_ext_attr): Don't be flexible about the EA format | |
398 | version. Check against the version number in | |
399 | ctx->ext_attr_ver. | |
400 | (check_blocks): Check all inodes, so that we account for | |
401 | extended attribute blocks belonging to special files. | |
402 | Clean up i_size checks. | |
403 | ||
404 | * pass1b.c (pass1b): Check all inodes, so that we account for | |
405 | extended attribute blocks belonging to special files. | |
406 | (delete_file_block): Use ext2fs_alloc_block_stats() to | |
407 | update the filesystem statistics. | |
408 | (delete_file): Attempt to decrement the extended | |
409 | attribute refcount, and free the EA block if the count | |
410 | hits zero. | |
411 | (clone_file): Fixed bugs in EA handling. Don't call | |
412 | block_iterate on inodes that don't have a valid i_block[] | |
413 | array. Reread the base inode since it may have been | |
414 | changed by ext2fs_block_iterate. When updating inodes as | |
415 | part of cloning an EA block, write out the correct inode | |
416 | structure. | |
417 | ||
418 | * pass2.c (deallocate_inode_block, deallocate_inode): Use standard | |
419 | ext2fs_alloc_*_stats functions to update the filesystem | |
420 | statistics. | |
421 | (deallocate_inode): Attempt to decrement the extended | |
422 | attribute refcount, and free the EA block if the count | |
423 | hits zero. | |
424 | (e2fsck_process_bad_inode): Add extra argument to calls | |
425 | to e2fsck_pass1_check_device_inode (). | |
426 | ||
427 | * pass3.c (e2fsck_get_lost_and_found): Use standard | |
428 | ext2fs_alloc_*_stats functions to update the filesystem. | |
429 | statistics when creating /lost+found. | |
430 | (adjust_inode_count): Remove debugging code that can never | |
431 | be triggered. | |
432 | ||
433 | * pass4.c (disconnect_inode): Add explanation about why we only | |
434 | clear inodes that have no data blocks and no EA blocks. | |
435 | Use ext2fs_inode_alloc_stats2 function to update the | |
436 | filesystem statistics when clearing a zero-length inode. | |
437 | ||
438 | * problem.c, problem.h (PR_1B_ADJ_EA_REFCOUNT, | |
439 | PR_2_ADJ_EA_REFCOUNT): Add new problem codes. | |
440 | ||
441 | * super.c (release_inode_block), (release_orphan_inodes): Use the | |
442 | standard ext2fs_alloc_*_stats functions to update the | |
443 | filesystem statistics. | |
444 | (release_inode_blocks): Attempt to decrement the extended | |
445 | attribute refcount, and free the EA block if the count | |
446 | hits zero. | |
447 | ||
838e773e TT |
448 | 2002-08-01 Theodore Ts'o <tytso@mit.edu> |
449 | ||
450 | * dict.c, dict.h: New file from kazlib 1.20 which implements a | |
451 | red-black tree | |
452 | ||
453 | * pass1b.c: Massive changes to take advantage of dict.c. This | |
454 | removes several O(n**2) algorithms from the rare case | |
455 | where there are a large number of blocks claimed by | |
456 | multiple inodes. | |
457 | ||
542867fb TT |
458 | 2002-07-24 Theodore Ts'o <tytso@mit.edu> |
459 | ||
850d05e9 TT |
460 | * e2fsck.8.in, e2fsck.h, pass3.c (e2fsck_pass3), unix.c, rehash.c: |
461 | Add new option -D, which requests e2fsck to optimize all | |
462 | directories. Rehash.c will also compress and sort | |
463 | non-indexed directories. | |
464 | ||
465 | * problem.c, problem.h: Rename PR_3A_REHASH_* to PR_3A_OPTIMIZE_* | |
466 | ||
467 | * unix.c (PRS): Make sure the signal_cancel is registered without | |
468 | SA_RESTART. | |
469 | ||
470 | * rehash.c (e2fsck_rehash_dir, copy_dir_entries, calculate_tree): | |
471 | Restructured code in e2fsck_rehash_dir into two new | |
472 | subroutines to make the code more understandable/maintainable. | |
473 | (set_root_node): Fixed bug which caused the root node to | |
474 | be invalid on non-FILETYPE filesystems due to an | |
475 | unitialized variable. | |
476 | (calculate_tree): Fix bug where pointers which might get | |
477 | invalidated if realloc() moves outdir->buf around. | |
478 | (e2fsck_rehash_dir): Fix memory leak bug. | |
479 | ||
480 | * pass3.c (e2fsck_get_lost_and_found), e2fsck.h, e2fsck.c: | |
481 | Exported as a public interface a function for finding the | |
482 | lost and found directory. Cache the location of the lost | |
483 | and found directory in the e2fsck context structure. | |
484 | ||
542867fb TT |
485 | * util.c (ask_yn, read_a_char): Note when the user has typed ^C, |
486 | and abort processing by longjmp'ing to ctx->abort_loc. | |
487 | ||
3214a453 TT |
488 | 2002-07-23 Theodore Ts'o <tytso@mit.edu> |
489 | ||
490 | * pass1.c (e2fsck_pass1): If e2fsck is run with -n, don't create | |
491 | the dirs_to_hash list, since we don't want to reindex | |
492 | directories if the filesystem is opened read-only. | |
493 | ||
4cae0452 TT |
494 | 2002-07-21 Theodore Ts'o <tytso@mit.edu> |
495 | ||
496 | * e2fsck.8.in: Document new exit code FSCK_CANCELED | |
497 | ||
498 | * unix.c (PRS, signal_cancel): Capture SIGINT and SIGTERM signals | |
499 | and set a flag in the e2fsck context indicating that | |
500 | cancellation has been requested, so that e2fsck will exit | |
501 | only at safe points. | |
502 | (main): Change the exit handling so that if a cancellation | |
503 | is requested, return FSCK_CANCELED (a new exit code 32). | |
504 | e2fsck can now return more than one exit code as part of a | |
505 | bitmask (as had been documented in the man page). | |
506 | ||
507 | * pass2.c (e2fsck_pass2, check_dir_block), pass3.c (e2fsck_pass3), | |
508 | pass4.c (e2fsck_pass4): Check to see if a cancellation was | |
509 | requested, and abort processing if necessary. | |
510 | ||
b7a00563 TT |
511 | 2002-07-19 Theodore Ts'o <tytso@mit.edu> |
512 | ||
513 | * rehash.c, Makefile.in: New file which rewrites directories using | |
514 | the htree format. | |
515 | ||
516 | * problem.c (fix_problem), problemP.h (PR_PREEN_NOHDR): Add option | |
517 | which suppresses the header printed when in preen mode. | |
518 | ||
519 | * pass3.c (e2fsck_pass3): If there are entries on the dirs_to_hash | |
520 | list, call e2fsck_rehash_directories to reindex those | |
521 | directories. | |
522 | (e2fsck_expand_directory): Generalize the old | |
523 | expand_dirctory() function so it can expand a directory to | |
524 | a guaranteed minimum size. | |
525 | ||
526 | * e2fsck.h (struct e2fsck_struct): Add the dirs_to_hash list. Add | |
527 | new function prototypes for rehash.c and for | |
528 | e2fsck_expand_directory(). | |
529 | ||
530 | * e2fsck.c (e2fsck_reset_context): Free the dirs_to_hash list. | |
531 | ||
532 | * pass1.c (e2fsck_pass1): Initialize the dirs_to_hash list if the | |
533 | htree feature is present in the filesystem. | |
534 | (check_blocks): If a non-htree directory has more than 2 | |
535 | blocks, put it on the dirs_to_hash list. | |
536 | ||
537 | * pass2.c (clear_htree): Add corrupt htree directories to the | |
538 | dirs_to_hash list. | |
539 | ||
540 | * problem.h, problem.c (PR_3A_PASS_HEADER, PR_3A_REHASH_ITER, | |
541 | PR_3A_REHASH_DIR_ERR, PR_3A_REHASH_DIR_HEADER, | |
542 | PR_3A_REHASH_DIR, PR_3A_REHASH_DIR_END): Add new problem codes | |
543 | ||
544 | * pass2.c (parse_int_node), problem.c (PR_2_HTREE_BADBLK): Fix | |
545 | problem display. | |
546 | ||
62acaa1d TT |
547 | 2002-07-15 Theodore Ts'o <tytso@mit.edu> |
548 | ||
549 | * pass2.c (e2fsck_pass2): Use dx_dir->numblocks instead of | |
550 | dx_dir->ino to indicate that a bad inode was cleared. | |
551 | ||
503f9e7f TT |
552 | 2002-06-26 Theodore Ts'o <tytso@mit.edu> |
553 | ||
554 | * pass1.c (check_blocks): Move htree handling to handle_htree(). | |
555 | Factor out calls to ext2fs_write_inode so that it happens | |
556 | if dirty_inode is non-zero. | |
557 | (handle_htree): Add checks for invalid htree root, invalid | |
558 | hash version, invalid hash version, and htree depth too deep. | |
559 | ||
560 | * problem.h, problem.c (PR_1_HTREE_NODIR, PR_1_HTREE_BADROOT, | |
561 | PR_1_HTREE_HASHV, PR_1_HTREE_INCOMPAT, PR_1_HTREE_DEPTH): | |
562 | Add new problem codes. | |
563 | ||
564 | * pass2.c (parse_int_node): Fix silly typo. | |
565 | (check_dir_block): Change to use new ext2fs_dirhash() | |
566 | function prototype. | |
567 | (pass2): Fixed two minor bugs discovered by the test case: | |
568 | Don't stop checking dxdir's after clearing a bad inode. | |
569 | If there is a bad max hash, make sure the bad_dir flag | |
570 | is set to make sure we try to clear inode. | |
571 | ||
8fdc9985 TT |
572 | 2002-06-25 Theodore Ts'o <tytso@mit.edu> |
573 | ||
574 | * e2fsck.c (e2fsck_reset_context): Free the dx_dirinfo structure. | |
575 | ||
576 | * message.c: Add new abbrevations @h and @p, "HTREE directory | |
577 | inode" and "problem in". | |
578 | ||
579 | * pass1.c (check_blocks): If the inode has the INDEX_FL flag, | |
580 | register the block into the indexed directory data | |
581 | structures. Or if the filesystem doesn't have the | |
582 | DIR_INDEX flag, offer to clear the INDEX_FL. | |
583 | ||
584 | * pass2.c (e2fsck_pass2, parse_int_node): Add support check htree | |
585 | directories (we don't check all possible corruptions yet). | |
586 | ||
587 | * problem.h, problem.h (PR_1_HTREE_SET, PR_2_HTREE_NOTREF, | |
588 | PR_2_HTREE_DUPREF, PR_2_HTREE_MIN_HASH, PR_2_HTREE_MAX_HASH, | |
589 | PR_2_HTREE_CLEAR, PR_2_HTREE_FCLR, PR_2_HTREE_BADBLK): Add | |
590 | new problem codes. | |
591 | ||
592 | * unix.c (main): If ENABLE_HTREE is not defined, complain if the | |
593 | filesystem has the dir_index feature. | |
594 | ||
595 | * Makefile.in, e2fsck.h, dx_dirinfo.c: New file (and group of | |
596 | functions) which keeps track of blocks in HTREE directory | |
597 | blocks. | |
598 | ||
b21bf267 AD |
599 | 2002-05-22 Andreas Dilger <adilger@clusterfs.com> |
600 | ||
601 | * super.c (check_superblock): Check that the number of inodes and | |
602 | blocks in a group is less than 2^16, so that the free inode | |
603 | and block counts for a group fit into the group descriptor | |
604 | table fields. Any more than that would need a COMPAT flag. | |
605 | ||
0d63467d TT |
606 | 2002-05-22 Theodore Ts'o <tytso@mit.edu> |
607 | ||
608 | * pass1.c (check_ext_attr): Update to support the V2 Bestbits EA | |
609 | format. We automatically determine from the first EA | |
610 | block we visit whether we are using the V1 or V2 format. | |
611 | ||
da307041 TT |
612 | 2002-05-21 Theodore Ts'o <tytso@mit.edu> |
613 | ||
614 | * pass1.c (process_block): If an inode has too many blocks or | |
615 | is too big, then offer to truncate the inode. | |
616 | (check_blocks): Don't bother checking the size to see if | |
617 | it's too big, since that's just a symptom, not the disease | |
618 | (which we're now appropriately checking in process_block). | |
619 | ||
620 | * problem.c, problem.h: Add new problem codes PR_1_INODE_TOOBIG, | |
621 | PR_1_TOOBIG_DIR, PR_1_TOOBIG_REG, PR_1_TOOBIG_SYMLINK, and | |
622 | add the latch code PR_LATCH_TOOBIG. | |
623 | ||
bcf9c5d4 TT |
624 | 2002-05-20 Theodore Ts'o <tytso@mit.edu> |
625 | ||
626 | * e2fsck.h, pass1.c (e2fsck_pass1_check_symlink), pass2.c | |
627 | (e2fsck_process_bad_inode): Add an extra | |
628 | argument so a scratch buffer can be passed into the | |
629 | function. | |
630 | ||
631 | * pass1.c (e2fsck_pass1_check_device_inode, | |
632 | e2fsck_pass1_check_symlink): If the EXT2_INDEX_FL flag is | |
633 | set, then the device/FIFO is invalid. | |
634 | (check_immutable): Don't check for EXT2_INDEX_FL; we take | |
635 | care of that elsewhere now. | |
636 | (e2fsck_pass1): Check to see if the symlink is valid | |
637 | before we offer to clear any immutable bits. This matches | |
638 | the order in which we check other special files. | |
639 | ||
640 | * pass2.c (e2fsck_pass2): Allocate a bigger scratch buffer so we | |
641 | can pass part of it to e2fsck_process_bad_inode. | |
642 | ||
643 | * pass4.c (e2fsck_pass4): If we need to call | |
644 | e2fsck_process_bad_inode(), allocate the necessary scratch | |
645 | buffer. | |
646 | ||
647 | * problem.h, problem.c: Change PR_2_SYMLINK_SIZE to be | |
648 | PR_2_INVALID_SYMLINK, and change the text | |
649 | accordingly. Revert the text change for PR_1_SET_IMMUTABLE | |
650 | since we no longer check for EXT2_INDEX_FL in | |
651 | check_immutable(). | |
652 | ||
653 | 2002-05-18 Andreas Dilger <adilger@clusterfs.com> | |
654 | ||
655 | * pass1.c (e2fsck_pass1_check_symlink): Remove checks of | |
656 | immutable/append-only checks, since this is handled by | |
657 | check_immutable. For non-fast symlinks, read in the | |
658 | data block and check the length to make sure it | |
659 | matches with the inode size. | |
660 | (check_immutable): Generalize to also check for the | |
661 | EXT2_INDEX_FL flag. | |
662 | (check_blocks): For non-regular files, signal a bad inode | |
663 | size if i_size_high is non-zero. | |
664 | ||
665 | * pass2.c: Only count large files if they are regular files | |
666 | (not just if they aren't directories). | |
667 | ||
668 | * problem.c, problem.h: Change comment for PR_2_SYMLINK_SIZE | |
669 | to indicate that it can be triggered by any symlink, | |
670 | not fast symlink. Change text for PR_1_SET_IMMUTABLE | |
671 | to indicate that it the EXT2_INDEX_FL was set. | |
672 | ||
31e29a12 TT |
673 | 2002-05-17 Theodore Ts'o <tytso@mit.edu> |
674 | ||
675 | * pass1.c (e2fsck_pass1): When calculating max_sizes, omit capping | |
676 | this value by the calculated value of max_sect_sizes. | |
677 | The inode may be a sparse inode, and the limit of | |
678 | max_sect_sizes assumed a non-sparse inode and a limit | |
679 | based on a 32-bit i_blocks field measured in 512 sectors. | |
680 | ||
681 | * super.c (check_super_block): Fix check for s_log_block_size so | |
682 | that takes into account fact that there is an offset of | |
683 | EXT2_MIN_BLOCK_LOG_SIZE. | |
684 | ||
685 | * pass1.c: Allocate max_sizes array to be big enough to support | |
686 | the larger block sizes. | |
687 | ||
688 | 2002-05-16 Andreas Dilger <adilger@clusterfs.com> | |
689 | ||
690 | * unix.c (main), util.c (get_backup_sb): Use EXT2_MAX_BLOCK_SIZE | |
691 | instead of using a hardcoded value of 4096. | |
692 | ||
693 | * super.c (check_super_block): Change checks for s_log_block_size | |
694 | s_log_frag_size so they support the larger block sizes. | |
695 | ||
696 | * pass1.c (e2fsck_pass1): Calculate max_sizes array for block | |
697 | sizes up to EXT2_MAX_BLOCK_SIZE (to support block sizes | |
698 | greater than 4k). | |
699 | ||
a8e77249 TT |
700 | 2002-03-08 Theodore Tso <tytso@mit.edu> |
701 | ||
702 | * Release of E2fsprogs 1.27 | |
703 | ||
546a1ff1 TT |
704 | 2002-03-07 Theodore Tso <tytso@mit.edu> |
705 | ||
706 | * journal.c, pass5.c, revoke.c: Fix gcc -Wall complaints | |
707 | ||
708 | 2002-03-07 Theodore Tso <tytso@mit.edu> | |
f2d5c937 TT |
709 | |
710 | * unix.c (main): Don't close the filesystem before calling | |
711 | fatal_error(); this just causes a needless warning about a | |
712 | bad I/O manager magic number. | |
713 | ||
714 | * journal.c (e2fsck_check_ext3_journal): Offer to clear the inode | |
715 | in case the journal is too small, or the inode number in | |
716 | the superblock doesn't appear to be random. | |
717 | ||
546a1ff1 | 718 | 2002-03-06 Theodore Tso <tytso@mit.edu> |
f122632e TT |
719 | |
720 | * problem.h, problem.c: PR_5_BLOCK_RANGE_UNUSED, | |
721 | PR_5_BLOCK_RANGE_USED, PR_5_INODE_RANGE_UNUSED, | |
722 | PR_5_INODE_RANGE_USED: Add new problem codes. | |
723 | ||
724 | * pass5.c (check_block_bitmaps, check_inode_bitmaps): Collapse | |
725 | reporting of adjacent blocks and inodes into a range. | |
726 | ||
14308a53 TT |
727 | 2002-03-04 Philipp Thomas <pthomas@suse.de> |
728 | ||
729 | * unix.c (main): Newer libintl needs LC_CTYPE to be set in | |
730 | addition to LC_MESSAGES. | |
731 | ||
57173d0f | 732 | 2002-02-24 Theodore Tso <tytso@mit.edu> |
b9f40925 TT |
733 | |
734 | * Makefile.in (install): Install hard links for man pages for | |
735 | fsck.ext2 and fsck.ext3. Remove any compressed man | |
736 | pages before installing the man pages. | |
737 | ||
57173d0f | 738 | 2002-02-22 Theodore Tso <tytso@mit.edu> |
d1a2182a TT |
739 | |
740 | * journal.c: Improve code maintainability and reduce code size by | |
741 | moving common code paths in e2fsck_journal_init_dev() and | |
742 | e2fsck_journal_init_inode() into e2fsck_get_journal(). | |
743 | Also fixed a memory leak in recover_ext3_journal(). | |
744 | ||
745 | * super.c (release_orphan_inodes): Fix memory leak. | |
746 | ||
a5f3f5c1 TT |
747 | 2002-02-03 Theodore Tso <tytso@thunk.org> |
748 | ||
749 | * Release of E2fsprogs 1.26 | |
750 | ||
751 | 2001-12-24 Theodore Tso <tytso@mit.edu> | |
3ed57c27 TT |
752 | |
753 | * unix.c (PRS): Don't allow the -c and -l/-L options to be | |
754 | specified at the same time. | |
755 | ||
756 | * e2fsck.h (E2F_OPT_WRITECHECK), unix.c (PRS), | |
757 | badblocks.c (read_bad_blocks_file): If two -c options are | |
758 | specified, then perform a non-destructive read/write scan | |
759 | of the disk. | |
760 | ||
761 | * e2fsck.8.in: Document the double -c option; also encourage users | |
762 | to use -c instead of the -l/-L options since it's too hard | |
763 | for users to get things like the blocksize parameter correct. | |
764 | ||
a5f3f5c1 | 765 | 2001-12-23 Theodore Tso <tytso@mit.edu> |
19007e51 | 766 | |
f1a1761d TT |
767 | * util.c (get_backup_sb): This function now searches for the |
768 | backup superblock by iterating over possible blocksizes | |
769 | instead of defaulting a guess of 8193 if the superblock | |
770 | isn't available. | |
771 | ||
772 | * message.c (expand_percent_expression), unix.c (main): Pass in | |
773 | new parameters to get_backup_sb. Also, in unix.c, use the | |
774 | blocksize paramter in the e2fsck context structure instead | |
775 | of using a static variable, since get_backup_sb wants to | |
776 | be able to set the blocksize paramter. | |
777 | ||
778 | * e2fsck.h: Update function prototype for get_backup_sb; also add | |
779 | the blocksize parameter to the e2fsck context structure. | |
780 | ||
19007e51 TT |
781 | * Makefile.in, jfs_user.h: Move linux/jbd.h to |
782 | ext2fs/kernel-jbd.h, to avoid using the system header | |
783 | file version of hbd.h when using diet glibc (since it | |
784 | forcibly adds /usr/include to the beginning of the | |
785 | include search path.) | |
786 | ||
a5f3f5c1 | 787 | 2001-12-21 Theodore Tso <tytso@mit.edu> |
d37066a9 | 788 | |
6a50c5ed TT |
789 | * problem.c (fix_problem): Use ctx->filesystem_name if the |
790 | ctx->device_name is NULL. | |
791 | ||
d37066a9 TT |
792 | * journal.c (e2fsck_check_ext3_journal): Give the opportunity to |
793 | run the journal even if recovery flag is cleared. If | |
794 | we're using a backup superblock, run the journal by | |
795 | default. | |
796 | ||
797 | * e2fsck.h (E2F_OPT_FORCE), unix.c (PRS, check_if_skip): Use a | |
798 | bitfield in the e2fsck context flags word to indicate | |
799 | whether or not a check should be forced. This allows the | |
800 | journal code to set the option if necessary to force a | |
801 | filesystem check. | |
802 | ||
803 | * problem.h, problem.c: Remove PR_0_JOURNAL_RESET_JOURNAL, and add | |
804 | PR_0_JOURNAL_RUN and PR_0_JOURNAL_RUN_DEFAULT. Update | |
805 | problem decription texts. | |
806 | ||
a5f3f5c1 | 807 | 2001-12-16 Theodore Tso <tytso@mit.edu> |
8cf93332 | 808 | |
4ea7bd04 TT |
809 | * e2fsck.h (ext2fs_get_refcount_size), unix.c (check_mount, PRS), |
810 | pass1.c (adjust_extattr_refcount), | |
811 | ea_refcount.c (ea_refcount_create): Fix gcc -Wall nits. | |
812 | ||
8cf93332 TT |
813 | * recovery.c, revoke.c: Update to versions from 2.4.17-pre8. |
814 | ||
815 | * journal.c, jfs_user.h: Update support code for new version of | |
816 | recover.c and revoke.c. Fix support for filesystems with | |
817 | external journals. | |
818 | ||
b3b3d465 GP |
819 | 2001-11-30 Gabriel Paubert <paubert@iram.es> |
820 | ||
821 | * journal.c (e2fsck_journal_load): Fix an endianness bug. | |
822 | ||
a5f3f5c1 | 823 | 2001-11-26 Theodore Tso <tytso@mit.edu> |
24bfb443 TT |
824 | |
825 | * super.c (check_super_block): Make sure that if the inode table | |
826 | or allocation bitmap is zero, that it is marked as | |
827 | invalid, so that in pass #1, a new bitmap/inode table gets | |
828 | properly allocated. (Addresses Debian Bug #116975) | |
829 | ||
a5f3f5c1 | 830 | 2001-11-24 Theodore Tso <tytso@mit.edu> |
1e9a7e02 TT |
831 | |
832 | * e2fsck.8.in: Fix minor typo in man page and clarify device | |
833 | specification. | |
834 | ||
a5f3f5c1 | 835 | 2001-10-07 Theodore Tso <tytso@mit.edu> |
62e3e7fe TT |
836 | |
837 | * journal.c (clear_v2_journal_fields, e2fsck_journal_load): If the | |
838 | V2 fields are set on a V1 journal superblock, or an | |
839 | internal V2 journal has s_nr_users is non-zero, clear the | |
840 | entire journal superblock beyond the V1 superblock. This | |
841 | fixes botched V1->V2 updates. | |
842 | ||
843 | * problem.c, problem.h (PR_0_CLEAR_V2_JOURNAL): Add new problem code. | |
844 | ||
a5f3f5c1 | 845 | 2001-09-20 Theodore Tso <tytso@mit.edu> |
773fd8a1 TT |
846 | |
847 | * e2fsck.h, journal.c (e2fsck_move_ext3_journal): Add new function | |
848 | which will automatically relocate the ext3 journal from a | |
849 | visible file to an invisible journal file if the | |
850 | filesystem has been opened read/write. | |
851 | ||
852 | * super.c (check_super_block): Add call to e2fsck_move_ext3_journal | |
853 | ||
854 | * problem.c, problem.h (PR_0_MOVE_JOURNAL, PR_0_ERR_MOVE_JOURNAL): | |
855 | Add new problem codes. | |
856 | ||
fbf91112 TT |
857 | 2001-09-20 Theodore Tso <tytso@thunk.org> |
858 | ||
859 | * Release of E2fsprogs 1.25 | |
860 | ||
a5f3f5c1 | 861 | 2001-09-19 Theodore Tso <tytso@mit.edu> |
ae6cdcf7 TT |
862 | |
863 | * unix.c (main): If a superblock is specified explicitly by the | |
864 | user, don't try to automatically fall back to an | |
865 | alternate superblock. | |
866 | ||
fb70775b TT |
867 | 2001-09-02 Theodore Tso <tytso@thunk.org> |
868 | ||
869 | * Release of E2fsprogs 1.24a | |
870 | ||
109624a1 TT |
871 | 2001-08-30 Theodore Tso <tytso@thunk.org> |
872 | ||
873 | * Release of E2fsprogs 1.24 | |
874 | ||
b1f204f7 TT |
875 | 2001-08-30 Theodore Tso <tytso@valinux.com> |
876 | ||
877 | * pass1.c (e2fsck_pass1): For EXT2_RESIZE_INO, allow its i_mode to | |
878 | either be zero or a regular file (for compatibility with | |
879 | Andreas's on-line resizing programs). | |
880 | ||
53abed0a TT |
881 | 2001-08-27 Theodore Tso <tytso@valinux.com> |
882 | ||
0f8973fb TT |
883 | * unix.c (main): Remove EXT2FS_VERSION from the version display, |
884 | since it only confuses people. | |
885 | ||
53abed0a TT |
886 | * pass1.c (strnlen): Provide strnlen if libc doesn't. |
887 | ||
943ed874 TT |
888 | 2001-08-15 Theodore Tso <tytso@valinux.com> |
889 | ||
890 | * Release of E2fsprogs 1.23 | |
891 | ||
85645a6f TT |
892 | 2001-08-13 Theodore Tso <tytso@valinux.com> |
893 | ||
eb4ab510 TT |
894 | * super.c (release_orphan_inodes): If the filesystem contains |
895 | errors, don't run the orphan * list, since the orphan list | |
896 | can't be trusted. | |
897 | ||
85645a6f TT |
898 | * pass1.c (check_size): Fix logic in check_size; the previous code |
899 | only offered to clear the inode size fields if both size | |
900 | and i_size_high were zero. | |
a40ecbb1 TT |
901 | (e2fsck_pass1_check_device_inode): If i_blocks is |
902 | non-zero, then assume that the device/socket/fifo inode | |
903 | is bogus. | |
85645a6f | 904 | |
2b94c658 TT |
905 | 2001-08-09 Theodore Tso <tytso@valinux.com> |
906 | ||
a4742691 TT |
907 | * pass1.c, pass2.c, problem.c, problem.h: Fix bug introduced by |
908 | Andreas's symlink code; check_blocks() was unconditionally | |
909 | testing inode_bad_map without checking to see if it | |
910 | existed first. Fixed problem a different way; we now no | |
911 | longer check inode_bad_map at all, since the file might | |
912 | not get deleted in pass 2 anyway. We move the large file | |
913 | feature reconciliation code to to e2fsck_pass2(), and in | |
914 | deallocate_inode() in pass2.c, we decrement the large | |
915 | files counter if we're about to delete a large file. | |
916 | ||
2b94c658 TT |
917 | * unix.c (show_stats): Print the number of large files in verbose |
918 | mode. | |
919 | ||
c0a083fa TT |
920 | 2001-08-07 Theodore Tso <tytso@valinux.com> |
921 | ||
922 | * journal.c (recover_ext3_journal): If s_errno is set in the | |
923 | journal superblock, set the EXT2_ERROR_FS flag in the | |
924 | filesystem superblock after the journal is run. | |
925 | ||
bd512b68 TT |
926 | 2001-08-04 Andreas Dilger <root@lynx.adilger.int> |
927 | ||
928 | * message.c: Change comments for %D and %d expansion in e2fsck | |
929 | problem codes. It was not consistent which was for dirent | |
930 | expansion, and which was for directory number expansion. | |
931 | ||
932 | * problem.c (PR_2_FINAL_RECLEN, PR_2_BAD_FILETYPE): Fix problem | |
933 | codes which got caught by the confusion between %D and %d. | |
934 | ||
d007cb4c TT |
935 | 2001-08-04 Theodore Tso <tytso@valinux.com> |
936 | ||
937 | * problem.c (PR_2_SYMLINK_SIZE): Change description to make it | |
938 | more clear (and remove %s expansion). Also add missing | |
939 | periods to the end of a number of problem descriptions. | |
940 | ||
941 | * pass2.c (e2fsck_process_bad_inode): Remove unneeded problem | |
942 | context string set now that the problem description for | |
943 | PR_2_SYMLINK_SIZE has been changed. | |
944 | ||
945 | * pass1.c (e2fsck_pass1_check_symlink): Consolidate some checks, | |
946 | and check the validity of the symlink block here (so that | |
947 | we detect this case here instead of later). Also use | |
948 | sizeof(inode->i_block) instead EXT2_LINK_DIR. | |
949 | ||
83e6ac84 TT |
950 | 2001-07-30 Theodore Tso <tytso@valinux.com> |
951 | ||
952 | * unix.c (check_mount): Remove the code which tested for the root | |
953 | filesystem being mounted read-only, and depend on the | |
954 | results flags from ext2fs_check_if_mounted. | |
955 | ||
1e16526b TT |
956 | 2001-07-29 Theodore Tso <tytso@valinux.com> |
957 | ||
6d222f32 TT |
958 | * unix.c (check_if_skip): Free the e2fsck context structure on a |
959 | normal clean filesystem exit, to make it easier to find | |
960 | real memory leaks. | |
961 | (PRS): Only update the path to include /sbin at the | |
962 | beginning if the -c option is given, again to make it | |
963 | easier to find memory leaks. | |
0628ae39 TT |
964 | (main): Move the final print_resource_track call after the |
965 | filesystem and the context are freed. | |
6d222f32 TT |
966 | |
967 | * journal.c (e2fsck_journal_init_dev): Avoid memory leak if we | |
968 | need to search for the journal device. | |
969 | (e2fsck_journal_release): Free the journal IO channel when | |
970 | we release the journal handle, to avoid a memory leak. | |
971 | ||
1e16526b TT |
972 | * e2fsck.c (e2fsck_reset_context): Fix bug; only close the io |
973 | channel if it is *different* from the filesystem io | |
974 | channel. | |
975 | ||
fd77b2c7 TT |
976 | 2001-07-27 Theodore Tso <tytso@valinux.com> |
977 | ||
a092c563 TT |
978 | * problem.c (PR_1_SET_IMMUTABLE): Clarify problem message. |
979 | ||
fd77b2c7 TT |
980 | * pass1.c (e2fsck_pass1): Check for symlinks that have the |
981 | immutable flag set (and offer to clear them). | |
982 | ||
24ceb248 TT |
983 | 2001-07-26 Theodore Tso <tytso@valinux.com> |
984 | ||
985 | * pass1.c (e2fsck_pass1): Free ctx->block_ea_map at the end of | |
986 | pass 1. | |
987 | ||
14fe1c33 TT |
988 | 2001-07-25 Theodore Tso <tytso@valinux.com> |
989 | ||
990 | * pass1.c (check_ext_attr): Skip zero-length EA entries. | |
991 | ||
992 | * problem.c: PR_1_EA_ALLOC_COLLISION shouldn't abort, but should | |
993 | prompt to clear the EA block. | |
994 | ||
adee8d75 TT |
995 | 2001-07-22 Theodore Tso <tytso@valinux.com> |
996 | ||
997 | * journal.c (ll_rw_block): Use ctx->journal_io instead of the | |
998 | filesystem's io_channel. | |
999 | (e2fsck_journal_init_dev): New function which supports | |
1000 | initialization of the external journal. | |
1001 | (e2fsck_get_journal): Remove code which flagged an error | |
1002 | if the superblock reported the use of an external journal. | |
1003 | (ext3_journal_via_mount): Remove unsued, #ifdefed out function. | |
1004 | ||
1005 | * problem.c, problem.h: Removed error codes no longer used | |
1006 | (PR_0_JOURNAL_UNSUPP_DEV, PR_0_JOURNAL_BAD_DEV, | |
1007 | PR_0_JOURNAL_UNSUPP_UUID) and replace them with new error | |
1008 | codes related with failures in loading the external | |
1009 | journal (PR_0_JOURNAL_UNSUPP_MULTIFS, | |
1010 | PR_0_CANT_FIND_JOURNAL, PR_0_EXT_JOURNAL_BAD_SUPER). | |
1011 | Also changed the text assocated with PR_0_JOURNAL_BAD_UUID | |
1012 | to reflect the case where the external journal isn't | |
1013 | correct for this filesystem. | |
1014 | ||
1015 | * unix.c (PRS), e2fsck.8.in: Add new option -j which allows | |
1016 | the user to specify the pathname to find the external journal. | |
1017 | ||
1018 | * e2fsck.c (e2fsck_reset_context): Close journal_io if it isn't | |
1019 | the same as the filesystem io_channel. | |
1020 | ||
1021 | * e2fsck.h: Add new fields (journal_io and journal_name) in the | |
1022 | context structure to support external journals. | |
1023 | ||
d3124019 TT |
1024 | 2001-07-20 Theodore Tso <tytso@valinux.com> |
1025 | ||
1026 | * unix.c (main): Add an explicit warning when the filesystem is | |
1027 | left not completely fixed when e2fsck exits. (Addresses | |
1028 | Debian bug #104502.) | |
1029 | ||
55fd07ed TT |
1030 | 2001-07-19 Theodore Tso <tytso@valinux.com> |
1031 | ||
1032 | * pass1.c (check_ext_attr): The entire EA block is now checked to | |
1033 | make sure that parts of the EA block aren't being used for | |
1034 | multiple purposes. | |
1035 | ||
1036 | * Makefile.in e2fsck.h, region.c: New file which is used to detect | |
1037 | collisions in extended attribute block. | |
1038 | ||
1039 | * problem.h, problem.c (PR_1_EA_MULTI_BLOCK, PR_1_EA_ALLOC_REGION, | |
1040 | PR_1_EA_ALLOC_COLLISION, PR_1_EA_BAD_NAME, | |
1041 | PR_1_EA_BAD_VALUE): Add new problem codes. | |
1042 | ||
3c6b8977 TT |
1043 | 2001-07-10 Theodore Tso <tytso@valinux.com> |
1044 | ||
1045 | * journal.c (e2fsck_run_ext3_journal): Only call ext3_flush() if | |
1046 | the superblock is dirty. | |
1047 | ||
e8a3ee62 TT |
1048 | 2001-07-07 Theodore Tso <tytso@valinux.com> |
1049 | ||
7b63fff9 TT |
1050 | * pass1b.c (pass1b, process_pass1b_block): Change the num_bad |
1051 | field calculation so that it only counts EA block entries | |
1052 | as a single multiply claimed block (since once we clone | |
1053 | the EA blocks for one inode, we fix the problem for all of | |
1054 | the other inodes). Also, I moved the num_bad calculation | |
1055 | from process_pass1b_block to the end of pass1b. This | |
1056 | fixes a *significant* performance bug in pass1b which hit | |
1057 | people who had to had a lot of multiply claimed blocks. | |
1058 | (Can you say O(n**3) boys and girls? I knew you could... | |
1059 | Fortunately, this case didn't happen that much in actual | |
1060 | practice.) | |
1061 | ||
1062 | * pass1.c (e2fsck_pass1): Defer inodes which have an extended | |
1063 | attribute block for later processing to avoid extra seeks | |
1064 | across the disk. | |
1065 | (process_inode_cmp): If there is no indirect block, sort | |
1066 | by the extended attribute (i_file_acl) block. | |
1067 | ||
7abb2bdc TT |
1068 | * pass1b.c (clone_file_block): Fix bugs when cloning extended |
1069 | attribute blocks. Moved free of block_buf to after the | |
1070 | code which clones the extattr block, and fixed logic for | |
1071 | changing pointers to the extended attribute field in the | |
1072 | inodes which were affected. | |
1073 | (decrement_badcount): New function which is used whenever | |
1074 | we need to decrement the number of files which claim a | |
1075 | particular bad block. Fixed bug where delete_file wasn't | |
1076 | checking check_if_fs_block() before clearing the entry in | |
1077 | block_dup_map. This could cause a block which was claimed | |
1078 | by multiple files as well as the filesystem metadata to | |
1079 | not be completely fixed. | |
1080 | ||
e8a3ee62 TT |
1081 | * pass1.c (adjust_extattr_refcount): Add new function which |
1082 | adjusts the reference counts of extended attribute blocks | |
1083 | if needed, both up and down. | |
1084 | (e2fsck_pass1): If the refcount or refcount_extra | |
1085 | structure are present, call adjust_extattr_refcount(), | |
1086 | and free it afterwards. | |
1087 | ||
1088 | * problem.h, problem.c (PR_1_EXTATTR_READ_ABORT, | |
1089 | PR_1_EXTATTR_REFCOUNT, PR_1_EXTATTR_WRITE): Add new | |
1090 | problem codes. | |
1091 | ||
342d847d TT |
1092 | 2001-07-02 Theodore Tso <tytso@valinux.com> |
1093 | ||
1094 | * pass1.c (e2fsck_pass1, check_ext_attr, check_blocks): Add | |
1095 | initial support for scanning extended attribute blocks. | |
1096 | ||
1097 | * e2fsck.c (e2fsck_reset_context): free extended attribute | |
1098 | refcount structure. | |
1099 | ||
1100 | * e2fsck.h: Add new fields for accounting for the extended | |
1101 | attribute blocks. | |
1102 | ||
1103 | * Makefile.in, ea_refcount.c, e2fsck.h: Add new file which | |
1104 | implements a reference count abstraction. | |
1105 | ||
1106 | * problem.c, problem.h: Add new problem codes PR_1_ALLOCATE_REFCOUNT, | |
1107 | PR_1_READ_EA_BLOCK, PR_1_BAD_EA_BLOCK, PR_2_FILE_ACL_BAD | |
1108 | ||
1109 | * message.c: Add "@a" as an abbreviation for "extended attribute" | |
1110 | ||
1111 | * pass1b.c (clone_file): Add code which handles cloning an | |
1112 | extended attribute block. | |
1113 | ||
1114 | * pass1b.c (delete_file): | |
1115 | * pass2.c (deallocate_inode): If the inode contains an extended | |
1116 | attribute block in the file_acl field, clear it and | |
1117 | deallocate the block. | |
1118 | ||
1119 | 2001-06-28 Theodore Tso <tytso@valinux.com> | |
1120 | ||
1121 | * pass2.c (e2fsck_process_bad_inode): Deal with inodes which are | |
1122 | marked bad because of an invalid file_acl (either because | |
1123 | EXT2_FEATURE_COMPAT_EXT_ATTR is not set, or because the | |
1124 | block number in file_acl is bad. | |
1125 | ||
636a954a TT |
1126 | 2001-06-29 Theodore Tso <tytso@valinux.com> |
1127 | ||
1128 | * unix.c (show_stats): Use long long to calculate the percentage | |
1129 | of the number of blocks in use in the filesystem. | |
1130 | ||
67960139 TT |
1131 | 2001-06-23 Theodore Tso <tytso@valinux.com> |
1132 | ||
1133 | * Release of E2fsprogs 1.22 | |
1134 | ||
d90f3494 TT |
1135 | 2001-06-22 Theodore Tso <tytso@valinux.com> |
1136 | ||
1137 | * flushb.c: Use platform independent method of defining the | |
1138 | BLKFLSBUF ioctl. Also include sys/mount.h since on newer | |
1139 | platforms BLKFLSBUF is defined there. | |
1140 | ||
42475e28 TT |
1141 | 2001-06-19 Theodore Tso <tytso@valinux.com> |
1142 | ||
1143 | * super.c (release_inode_blocks): Don't try to release the blocks | |
1144 | if the orphaned inode is a device file, symlink, or some | |
1145 | other kind of special file that doesn't have a block list. | |
1146 | ||
f4f75bae TT |
1147 | 2001-06-15 Theodore Tso <tytso@valinux.com> |
1148 | ||
1149 | * Release of E2fsprogs 1.21 | |
1150 | ||
b6a0807b TT |
1151 | 2001-06-13 Theodore Tso <tytso@valinux.com> |
1152 | ||
1153 | * unix.c (check_if_skip): Adapted patch from Andreas Dilger which | |
1154 | prints the number of mounts or days elapsed since the last | |
1155 | check when e2fsck is forced to check an otherwise clean | |
1156 | filesystem. | |
1157 | ||
cbbf031b TT |
1158 | 2001-06-12 Theodore Tso <tytso@valinux.com> |
1159 | ||
1160 | * badblocks.c: Stop using the compatibility badblocks function, | |
1161 | and use the ext2fs_badblocks_* functions instead. | |
1162 | ||
5df55d7f TT |
1163 | 2001-06-11 Theodore Tso <tytso@valinux.com> |
1164 | ||
3034f62a TT |
1165 | * unix.c (PRS): Fix bug introduced in 1.20 which broke the -F |
1166 | flag. | |
1167 | ||
5df55d7f TT |
1168 | * Makefile.in: Add message.c and swapfs.c to the list of source |
1169 | files to build the make depend. | |
1170 | ||
1171 | * swapfs.c, unix.c: Only support the -s and -S options to e2fsck | |
1172 | if ENABLE_SWAPFS is defined. | |
1173 | ||
725c474f TT |
1174 | 2001-06-08 Theodore Tso <tytso@valinux.com> |
1175 | ||
1176 | * recover.c, revoke.c: Synchronize with ext3 0.7a | |
1177 | ||
fdbdea09 TT |
1178 | 2001-06-02 Theodore Tso <tytso@valinux.com> |
1179 | ||
a479fe60 TT |
1180 | * recovery.c (scan_revoke_records): Fix bug in recovery code; |
1181 | missing byte order conversion. | |
1182 | ||
fdbdea09 TT |
1183 | * pass1.c (mark_inode_bad): Replace alloc_bad_map with a function |
1184 | which sets the bit in the bad inode bitmap. | |
1185 | (e2fsck_pass1): Check for fast symlinks with an invalid | |
1186 | size, and set the bad inode map in that case. | |
62b6d479 TT |
1187 | (check_size): Check i_size_high for special files and |
1188 | prompt to clear it along with i_size if non-zero. | |
fdbdea09 TT |
1189 | |
1190 | * pass2.c (e2fsck_process_bad_inode): Check for fast symlinks with | |
1191 | an invalid size and prompt the user if the inode should be | |
1192 | cleared. | |
1193 | ||
1194 | * problem.h, problem.c (PR_2_SYMLINK_SIZE): Added new problem code. | |
1195 | ||
797f5ef1 TT |
1196 | 2001-06-01 Theodore Tso <tytso@valinux.com> |
1197 | ||
2f686ace TT |
1198 | * problem.c, problem.h: Change PR_0_JOURNAL_UNSUPP_INCOMPAT and |
1199 | PR_0_JOURNAL_UNSUPP_ROCOMPAT so they aren't fatal errors, | |
1200 | but prompt to see if the user should abort. Removed the | |
1201 | PR_0_JOURNAL_RESET_COMPAT problem code. | |
1202 | ||
1203 | * journal.c (e2fsck_journal_load): If there are incompatible | |
1204 | journal flags, just return an error code. | |
1205 | (e2fsck_check_ext3_journal): If e2fsck_journal_load | |
1206 | returns an error code indicating that there are | |
1207 | incompatible journal flag, check to see if we should | |
1208 | abort, and then offer to clear the journal. | |
e333845b | 1209 | (Addresses Debian bug #98527.) |
2f686ace | 1210 | |
797f5ef1 | 1211 | * Makefile.in: Move include/asm/types.h.in to |
36a23e18 | 1212 | lib/ext2fs/ext2_types.h.in. |
797f5ef1 | 1213 | |
71d521c6 TT |
1214 | 2001-06-01 Theodore Tso <tytso@valinux.com> |
1215 | ||
1216 | * pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode, | |
1217 | pass1_check_directory): Add a safety check to make sure | |
1218 | ctx->stashed_inode is non-zero. | |
1219 | ||
1220 | * pass1b.c (pass1b): Use e2fsck_use_inode_shortcuts() to disable | |
1221 | the inode shortcut processing, instead of manually | |
1222 | clearing only half of the function pointers that needed to | |
1223 | be NULL'ed out. This caused nasty bugs if the last inode | |
1224 | in the filesystem needed dup block processing. | |
1225 | ||
1226 | * pass1b.c (clone_file_block): When cloning a directory's metadata | |
1227 | block, don't try to update the directory block list | |
1228 | database, since indirect blocks aren't stored in the | |
1229 | database and the resulting error will abort the file clone | |
1230 | operation. | |
1231 | ||
bb185861 TT |
1232 | 2001-05-25 Theodore Tso <tytso@valinux.com> |
1233 | ||
1234 | * Release of E2fsprogs 1.20 | |
1235 | ||
561cd4dd TT |
1236 | 2001-05-25 Theodore Tso <tytso@valinux.com> |
1237 | ||
1238 | * journal.c (e2fsck_journal_reset_super): Remove extraneous line | |
1239 | ||
c7f23364 TT |
1240 | 2001-05-23 Theodore Tso <tytso@valinux.com> |
1241 | ||
1242 | * journal.c (e2fsck_journal_reset_super): Fix bug; the reset | |
1243 | journal wasn't getting written out to disk since the dirty | |
1244 | bit wasn't being set on the buffer. | |
1245 | (e2fsck_journal_load): Don't print an error message if the | |
1246 | journal version number is wrong; just return a error code | |
1247 | reflecting this fact. If the block type in the journal | |
1248 | superblcok is obviously not a version number, report the | |
1249 | journal is corrupted. | |
1250 | (e2fsck_check_ext3_journal): On an unsupported journal | |
1251 | version, prompt to abort by default, but then offer a | |
1252 | chance to clear the journal as corrupt. | |
1253 | ||
1254 | * problem.c, problem.h (PR_0_JOURNAL_UNSUPP_VERSION): Added new | |
1255 | problem code. | |
1256 | ||
424cd2be TT |
1257 | 2001-05-14 Theodore Tso <tytso@valinux.com> |
1258 | ||
21afac09 TT |
1259 | * pass1.c: Treat inodes with a low dtime (that were from a |
1260 | corrupted orphan list) specially. | |
1261 | ||
1262 | * problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and | |
1263 | PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, | |
1264 | PR_LATCH_LOW_DTIME. | |
1265 | ||
1266 | * problemP.h: Expand the size of the problem flag to be an int | |
1267 | instead of a short. Expand space in the flag word which | |
1268 | is reserved for problem latch flags from 3 bits to 8 bits. | |
1269 | ||
54c637d4 TT |
1270 | * e2fsck.h, scantest.c: Change location of ext2_fs.h to be |
1271 | ext2fs/ext2_fs.h | |
1272 | ||
424cd2be TT |
1273 | * super.c (check_super_block): Be more strict on checking |
1274 | s_r_blocks_count superblock field. | |
1275 | ||
1276 | 2001-05-13 Theodore Tso <tytso@valinux.com> | |
1277 | ||
1278 | * problem.c, problem.h (PR_0_JOURNAL_UNSUPP_ROCOMPAT, | |
1279 | PR_0_JOURNAL_UNSUPP_INCOMPAT, PR_0_JOURNAL_RESET_COMPAT): | |
1280 | New problem codes. | |
1281 | ||
1282 | * journal.c (e2fsck_journal_load): Use a problem code to | |
1283 | report unsupported feature flags. There is code to | |
1284 | clear unsupported flags, but since this is dangerous, | |
1285 | it's not allowed in the problem code table. | |
1286 | ||
1287 | 2001-05-11 Andreas Dilger <adilger@turbolinux.com> | |
1288 | ||
1289 | * journal.c (e2fsck_journal_reset_super): initialize the journal | |
1290 | sequence number to a random value to avoid recovering | |
1291 | bad transactions from a corrupt journal. | |
1292 | ||
328a5ce4 TT |
1293 | 2001-05-13 Theodore Tso <tytso@valinux.com> |
1294 | ||
1295 | * journal.c: Code cleanup; initialize journal_enable_debug using | |
1296 | an initializer. | |
1297 | ||
fc9a69ca TT |
1298 | 2001-05-12 Theodore Tso <tytso@valinux.com> |
1299 | ||
1300 | * unix.c (PRS): Skip validation of -C's file descriptor if it is | |
1301 | zero, since that is special case. | |
1302 | ||
f0b8c87d TT |
1303 | 2001-05-09 Theodore Tso <tytso@valinux.com> |
1304 | ||
1305 | * super.c (release_orphan_inodes): Add gettext quoting around | |
1306 | "Truncating" and "Clearing" for i18n. | |
1307 | ||
b9852cd8 TT |
1308 | 2001-05-05 Theodore Tso <tytso@valinux.com> |
1309 | ||
e39ac922 TT |
1310 | * util.c (fatal_error): Use the correct magic number when checking |
1311 | the magic number for the io_channel data structure. Also | |
1312 | remove extraneous call to io_channel_flush() that was left | |
1313 | over from an editing session. | |
1314 | ||
b9852cd8 TT |
1315 | * pass2.c (check_dir_block): Ignore EXT2_ET_DIR_CORRUPTED errors |
1316 | from ext2fs_read_dir_block(). | |
1317 | ||
5f629b74 TT |
1318 | 2001-05-01 Theodore Tso <tytso@valinux.com> |
1319 | ||
ae8160e6 TT |
1320 | * unix.c (PRS): Validate the completion information file |
1321 | descriptor so that the completion bar won't get | |
1322 | accidentally written onto the disk. | |
1323 | ||
5f629b74 TT |
1324 | * e2fsck.8.in: Add explanation that you can use mke2fs -n -b |
1325 | blocksize to printout alternate superblock locations. | |
1326 | ||
bc57f153 TT |
1327 | 2001-04-26 Theodore Tso <tytso@valinux.com> |
1328 | ||
1329 | * unix.c (check_if_skip): If the max_mount_count is zero, treat it | |
1330 | as having no count set. | |
1331 | ||
ef059870 TT |
1332 | 2001-04-16 Theodore Tso <tytso@valinux.com> |
1333 | ||
1334 | * super.c (check_super_block): Fix bad calculation of | |
1335 | inodes_per_block, and tighten min/max checks to be a bit | |
1336 | more paranoid. Thanks to Andreas Dilger for pointing out | |
1337 | this bug. | |
1338 | ||
1f735038 TT |
1339 | 2001-03-29 Theodore Tso <tytso@valinux.com> |
1340 | ||
15986f79 TT |
1341 | * journal.c (mark_buffer_uptodate): Add emulation of kernel |
1342 | function mark_buffer_uptodate. | |
1343 | ||
1f735038 TT |
1344 | * recovery.c, revoke.c: Synchronize with 0.6b ext3 files. |
1345 | ||
d0515212 TT |
1346 | 2001-02-12 Theodore Tso <tytso@valinux.com> |
1347 | ||
1348 | * journal.c (e2fsck_run_ext3_journal): Force a flush of the | |
1349 | filesystem and io_channel before replaying the journal. | |
1350 | ||
a5c33f26 TT |
1351 | 2001-01-17 Theodore Ts'o <tytso@valinux.com> |
1352 | ||
1353 | * pass1.c (check_blocks): Fix large file checking code so that | |
1354 | files > 2GB are considered large files, and restrict | |
1355 | directories from being > 2GB. | |
1356 | ||
7e92dfae TT |
1357 | 2001-01-12 Theodore Ts'o <tytso@valinux.com> |
1358 | ||
a9ca2016 TT |
1359 | * journal.c (e2fsck_journal_fix_unsupported_super): Remove unused |
1360 | function. Add FIXME notes to e2fsck_get_journal(), from | |
1361 | Andreas Dilger. | |
1362 | ||
1363 | * pass1.c (e2fsck_pass1): Cap the maximum legal size of a file by | |
1364 | the limit caused by the fact that i_blocks is in 512 byte | |
1365 | units, and that the Linux buffer cache also fundamentally | |
1366 | assumes 512 byte sectors. | |
1367 | Make sure that the journal inode is a regular file, and | |
1368 | when clearing an unused journal inode, make sure the | |
1369 | icount db is updated. | |
1370 | ||
1371 | * problem.c, problem.h (PR_1_JOURNAL_BAD_MODE): Add new problem code. | |
1372 | ||
37b6b297 TT |
1373 | * problem.c: For PR_1_RESERVED_BAD_MODE, print a description of |
1374 | the reserved inode. In PR_0_JOURNAL_HAS_JOURNAL, prompt | |
1375 | to clear the journal, rather than deleting it (which is | |
1376 | more accurate). (From Andreas Dilger.) | |
1377 | ||
6a6d3d44 TT |
1378 | * journal.c: Make sure all functions which return an error code |
1379 | use the errcode_t return type, and not "int" | |
1380 | (e2fsck_journal_release): Add new parameter, "drop", | |
1381 | which is used when we just want to deallocate the journal | |
1382 | without trying to write out any changes. | |
1383 | (mark_buffer_clean): New function | |
1384 | (e2fsck_check_ext3_journal): If we fail loading the | |
1385 | journal, make sure we free all memory associated with it. | |
1386 | (recover_ext3_journal): If we fail to load the journal or | |
1387 | initialize the revoke data structures, make sure we free all | |
1388 | memory associated with the journal. | |
1389 | ||
721edd0e TT |
1390 | * message.c (special_inode_name): Add more special inode names |
1391 | (From Andreas Dilger) | |
1392 | ||
58a75177 TT |
1393 | * util.c (fatal_error): Check to make sure the io_manager data |
1394 | structure is sane before trying to flush the io_channel. | |
1395 | (From Andreas Dilger) | |
1396 | ||
721edd0e TT |
1397 | * mtrace.h, super.c, pass2.c: Minor whitespace cleanups, from |
1398 | Andreas Dilger. | |
4035f40b | 1399 | |
7e92dfae TT |
1400 | * journal.c (e2fsck_journal_fix_bad_inode): Set pctx->ino to the |
1401 | bad journal number. | |
1402 | ||
1403 | * problem.c (PR_0_JOURNAL_BAD_INODE): Use pctx->ino instead of | |
1404 | pctx->num when printing the bad journal inode number. | |
1405 | ||
86c627ec TT |
1406 | 2001-01-11 <tytso@snap.thunk.org> |
1407 | ||
5ba23cb1 TT |
1408 | * pass1.c (process_block): Remove dead code which was never |
1409 | getting executed. | |
1410 | ||
1411 | * iscan.c, unix.c, e2fsck.h: Don't use NOARGS, and use | |
1412 | ext2fs_sync_device() instead of using BLKFLSBUF. | |
1413 | ||
1414 | * flushb.c: Don't use NOARGS anymore; everything is STDC these days. | |
1415 | ||
86c627ec TT |
1416 | * dirinfo.c, e2fsck.h, emptydir.c, iscan.c, jfs_user.h, journal.c, |
1417 | message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c, | |
1418 | pass5.c, problem.h, scantest.c, super.c, swapfs.c: Change | |
1419 | ino_t to ext2_ino_t. | |
1420 | ||
95a5bc91 TT |
1421 | 2001-01-09 <tytso@snap.thunk.org> |
1422 | ||
1423 | * problem.c: Fix another broken @F vs @f problem. | |
1424 | ||
53ef44c4 TT |
1425 | 2001-01-06 <tytso@snap.thunk.org> |
1426 | ||
1427 | * journal.c, pass1.c, pass1b.c, pass3.c, recovery.c, revoke.c, | |
1428 | super.c, unix.c, util.c: Fix random gcc -Wall complaints. | |
1429 | ||
1430 | * jfs_user.h: Use more sophisticated inline handling to allow | |
1431 | building with --enable-gcc-wall | |
1432 | ||
d3f35b64 TT |
1433 | 2001-01-03 <tytso@snap.thunk.org> |
1434 | ||
f18996c8 TT |
1435 | * pass1.c (e2fsck_pass1): Moved journal inode handling out to its |
1436 | own block; if the journal inode is not in use, and it | |
1437 | contains data, offer to clear it. | |
1438 | ||
1439 | * problem.h, problem.c (PR1_JOURNAL_INODE_NOT_CLEAR): Add new | |
1440 | problem code. | |
1441 | ||
1442 | * problem.c: Modified problem table to use a new abbreviations. | |
1443 | ||
d74edf4e | 1444 | * message.c: Add @j abbreviation for journal, and @v abbreviation |
e904406e | 1445 | for device. |
1ce64539 | 1446 | |
cc7067b4 TT |
1447 | * jfs_user.h: Moved contents of jfs_e2fsck.h into jfs_user.h. |
1448 | ||
d3f35b64 TT |
1449 | * journal.c (e2fsck_check_ext3_journal): Force a fsck if we remove |
1450 | the journal stored on a reserved inode. Also force a fsck | |
1451 | if the journal appears to exist while !NEEDS_RECOVERY, and | |
1452 | we forcibly reset the journal. | |
1453 | ||
f5ae75e5 TT |
1454 | 2001-01-01 <tytso@snap.thunk.org> |
1455 | ||
5dd8f963 TT |
1456 | * journal.c, pass1.c, super.c, unix.c: Replace use of struct |
1457 | ext2fs_sb with struct ext2_super_block. | |
1458 | ||
f5ae75e5 TT |
1459 | * pass1.c (check_blocks): Remove use of EXT2_HAS_*_FEATURE macros. |
1460 | ||
2fe1efe2 TT |
1461 | 2000-12-31 <tytso@snap.thunk.org> |
1462 | ||
1463 | * jfs_compat.h: Remove uneeded header file. | |
1464 | ||
b2f93192 TT |
1465 | 2000-12-30 <tytso@snap.thunk.org> |
1466 | ||
c59a704b TT |
1467 | * malloc.h, mtrace.c: Renamed malloc.h to mtrace.h to avoid |
1468 | conflicts with the system header file. | |
1469 | ||
b2f93192 TT |
1470 | * problem.h: Fixed numbering of pass1 error messages; an extra 0 |
1471 | had slipped into some of the numbers. (Pointed out by | |
1472 | Andreas Dilger) | |
1473 | ||
1474 | * journal.c (e2fsck_journal_fix_corrupt_super): Clean up | |
1475 | unnecessary automatic variable. Add explanatory comment | |
1476 | about the kernel emulation routines. (Suggested by | |
1477 | Andreas Dilger) | |
1478 | ||
060b5fbf TT |
1479 | 2000-12-13 Theodore Ts'o <tytso@valinux.com> |
1480 | ||
9b565759 TT |
1481 | * journal.c (e2fsck_check_ext3_journal): Check to make sure the |
1482 | journal fields are consistent if any of the superblock | |
1483 | fields are set. (Backs out erroneous change made by sct, | |
1484 | pointed out by Andreas.) | |
1485 | ||
1486 | * unix.c (main): Clarify coments (no code changes) | |
1487 | ||
1488 | * super.c (release_orphan_inodes): Fix spelling typo in error message. | |
1489 | ||
8188c9e6 TT |
1490 | * pass1.c (e2fsck_pass1): Offer to update the filesystem revision |
1491 | level if we need to set large files flag. Patch from | |
1492 | Andreas Dilger. | |
1493 | ||
7b59f1ef TT |
1494 | * super.c (check_super_block): If we have any of the compatibility |
1495 | flags set, we need to have a revision 1 filesystem. Most | |
1496 | kernels will not check the flags on a rev 0 filesystem | |
1497 | and we may have corruption issues because of the | |
1498 | incompatible changes to the filesystem. Patch from Andreas | |
1499 | Dilger. | |
1500 | ||
060b5fbf TT |
1501 | * problem.c, problem.h (PR_0_FS_REV_LEVEL, PR_1_FS_REV_LEVEL): Add |
1502 | new problem codes. | |
1503 | ||
0e8a9560 TT |
1504 | 2000-12-09 <tytso@snap.thunk.org> |
1505 | ||
bf2d4999 TT |
1506 | * flushb.c: Fix flushb so that it does something other than waste |
1507 | disk space when built on systems with modern header files | |
1508 | and add a non-subtle Copyright Licensing restriction so | |
1509 | Yann will remove it from the Debian Distribution. (Now | |
1510 | violates the Debian Free Software Guidelines, on purpose.) | |
1511 | ||
f43650c3 TT |
1512 | * journal.c (e2fsck_check_ext3_journal): If JFS_DEBUG is defined |
1513 | at the top level, set the JFS debuging level to 2. | |
1514 | ||
0e8a9560 TT |
1515 | * jfs_e2fsck.h, jfs_user.h: Replaces jfs_compat.h. The jfs.h file |
1516 | has been moved to the include/linux directory. | |
1517 | ||
1518 | * journal.c, revoke.c, recovery.c: Updated files from Stephen to | |
1519 | support the V2 superblock and revoke processing. The | |
1520 | journal.c and revoke.c files are copies from the ext3 | |
1521 | kernel source. | |
1522 | ||
1523 | * Makefile.in: Added revoke.c to the list of source/object files. | |
1524 | ||
133a56dc TT |
1525 | 2000-11-16 Theodore Ts'o <tytso@valinux.com> |
1526 | ||
1527 | * pass1b.c: Change routines to use PR_1B_BLOCK_ITERATE when | |
1528 | reporting problems rather than using com_err directly. | |
1529 | ||
1530 | * problem.c, problem.h (PR_1B_BLOCK_ITERATE): Add new problem code. | |
1531 | ||
1532 | * message.c (expand_percent_expression): Add safety check. If | |
1533 | ctx->str is NULL, print "NULL" instead of dereferencing | |
1534 | the null pointer. | |
1535 | ||
1536 | * pass1b.c, pass2.c, pass3.c: Change calls to ext2fs_block_iterate | |
1537 | to ext2fs_block_iterate2, to support 64-bit filesizes and | |
1538 | to speed things up slightly by avoiding the use of the | |
1539 | ext2fs_block_iterate's compatibility shim layer. | |
1540 | ||
3f65f1ac TT |
1541 | 2000-10-30 <tytso@snap.thunk.org> |
1542 | ||
1543 | * util.c (get_backup_sb): Calculate backup superblock correctly | |
1544 | when the blocksize is > 1k. | |
1545 | ||
241f224f TT |
1546 | 2000-10-26 <tytso@snap.thunk.org> |
1547 | ||
1548 | * jfs.h, jfs_compat.h, journal.c: Updated to include the | |
1549 | definition of the new journal superblock format; still | |
1550 | only supports V1 superblocks for now. (From sct) | |
1551 | ||
b09a4b0c TT |
1552 | 2000-10-24 <tytso@snap.thunk.org> |
1553 | ||
8394902e TT |
1554 | * super.c (release_inode_block, release_inode_blocks, |
1555 | release_orphan_inodes): Add code to deal with truncating | |
1556 | inodes which are still in use (but which are on the orphan | |
1557 | list because they need truncation). | |
1558 | ||
1559 | * problem.c, problem.h: Rename PR_0_CLEAR_ORPHAN_INODE to | |
1560 | PR_0_ORPHAN_CLEAR_INODE, and remove | |
1561 | PR_0_ORPHAN_INODE_INUSE. | |
1562 | ||
1563 | * journal.c (e2fsck_run_ext3_journal): Add i18n support, and print | |
1564 | a message when the journal is being recovered. | |
1565 | ||
b09a4b0c TT |
1566 | * pass1.c (e2fsck_pass1): Don't check the i_mode field for the |
1567 | journal inode, if it is in use. | |
1568 | ||
adfca56f TT |
1569 | 2000-09-12 <tytso@valinux.com> |
1570 | ||
1571 | * extend.c: | |
1572 | * flushb.c: Add include of nls-enable.h which is necessary so that | |
1573 | they can compile correctly. | |
1574 | ||
cc96b2b0 TT |
1575 | 2000-08-22 <tytso@valinux.com> |
1576 | ||
2575fb04 TT |
1577 | * unix.c (main): If we're doing a read-only check, skip the |
1578 | journal playback, but don't abort the e2fsck run. | |
1579 | ||
99a2cc96 TT |
1580 | * super.c (release_orphan_inodes): Fix typo; should do bounds |
1581 | checking on next_ino instead of ino. | |
1582 | ||
1583 | * jfs_compat.h (J_ASSERT): | |
1584 | * journal.c (e2fsck_run_ext3_journal): | |
1585 | * pass3.c (adjust_inode_count): Use fatal_error() instead of exit(). | |
1586 | ||
243dc31f TT |
1587 | * unix.c: Use fatal_error() instead of exit() whenever possible. |
1588 | Also fix the fsck exit codes so that we use FSCK_USAGE | |
1589 | when it is appropriate. Rename global_signal_ctx to | |
1590 | e2fsck_global_ctx and let it be exported globally. | |
1591 | ||
cc96b2b0 TT |
1592 | * util.c (fatal_error): Try to flush the I/O manager before |
1593 | forcing an exit. | |
1594 | ||
ecf1b776 TT |
1595 | 2000-08-20 <tytso@valinux.com> |
1596 | ||
1597 | * journal.c (e2fsck_journal_load): Fix **nasty** bug which caused | |
1598 | e2fsck_check_ext3_journal to smash the journal because | |
1599 | journal->j_transaction_sequence wasn't getting | |
1600 | initialized. | |
1601 | ||
1602 | * journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move | |
1603 | call to e2fsck_clear_recover from recover_ext3_journal to | |
1604 | after the filesystem has been closed and reopened. | |
1605 | Otherwise, the superblock in the filesystem handle will | |
1606 | probably be stale, and will overwrite the newer version of | |
1607 | the superblock written by the log recovery. | |
1608 | ||
1609 | * message.c (expand_inode_expression): Add support for %Iu and %Ig | |
1610 | ||
1611 | * problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code. | |
1612 | ||
1613 | * super.c (release_orphan_inodes, release_inode_block, | |
1614 | release_inode_blocks): Update the block group descriptor | |
1615 | counts when freeing the orphan inode. Use | |
1616 | PR_0_CLEAR_ORPHAN_INODE to report when we clear an orphan. | |
1617 | ||
1618 | * journal.c (e2fsck_run_ext3_journal): Fix a bug where we | |
1619 | attempted to reopen the filesystem using the device name | |
1620 | instead of the filesystem name. | |
1621 | ||
80bfaa3e TT |
1622 | 2000-08-18 <tytso@valinux.com> |
1623 | ||
1624 | * Makefile.in: Update the make dependencies | |
1625 | ||
1626 | * problem.c, problem.h: Add the problem codes: | |
1627 | PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, | |
1628 | PR_0_ORPHAN_ALREADY_CLEARED_BLOCK, | |
1629 | PR_0_ORPHAN_ILLEGAL_HEAD_INODE, | |
1630 | PR_0_ORPHAN_ILLEGAL_INODE, PR_0_ORPHAN_INODE_INUSE | |
1631 | ||
1632 | * super.c (release_inode_blocks, release_orphan_inodes, | |
1633 | check_super_block): Add support for clearing orphaned | |
1634 | inodes from the unmounted filesystem. | |
1635 | ||
1636 | * journal.c (e2fsck_recover_ext3_journal): Remove the last orphan | |
1637 | check; this is now handled in check_super_block --- | |
1638 | non-journaled filesystems can use the orphan list in the | |
1639 | future. Also, move the the re-opening of the filesystem | |
1640 | to e2fsck_run_ext3_journal(). | |
1641 | ||
3b5386dc TT |
1642 | 2000-07-12 Andreas Dilger <adilger@turbolinux.com> |
1643 | ||
1644 | * journal.c: implement loading of ext3 journal for recovery code | |
1645 | ||
1646 | * problem.c (fix_problem): return answer from PR_AFTER_CODE to caller. | |
1647 | Add journal problems. | |
1648 | ||
1649 | * recovery.c (journal_recover): user-space ext3 journal recovery code | |
1650 | ||
1651 | * unix.c (main) : check journal and do recovery in separate steps | |
1652 | ||
b8d164cd TT |
1653 | 2000-08-07 <tytso@snap.thunk.org> |
1654 | ||
1655 | * unix.c (calc_percent): Make sure that we don't take a floating | |
1656 | exception if the max value is zero. (should normally | |
1657 | never happen, but...) | |
1658 | ||
f9e67064 TT |
1659 | 2000-07-13 <tytso@valinux.com> |
1660 | ||
1661 | * Release of E2fsprogs 1.19 | |
1662 | ||
17390c04 TT |
1663 | 2000-07-06 Theodore Ts'o <tytso@valinux.com> |
1664 | ||
1665 | * unix.c (check_if_skip): Modify algorithm for checking | |
1666 | s_max_mnt_count to match with the kernel. (If | |
1667 | s_max_mnt_count is negative, ignore the mnt_count check.) | |
1668 | ||
1669 | * unix.c (e2fsck_update_progress): Adjust the width of the | |
1670 | progress bar dynamically, based on the filesystem name | |
1671 | that we need to display. | |
1672 | ||
1673 | * unix.c (main): If the ext3 needs_recovery flag is set, call | |
1674 | e2fsck_run_ext3_journal() and then restart the e2fsck run. | |
1675 | ||
1676 | * journal.c (e2fsck_run_ext3_journal): New file which contains | |
1677 | logic to recover the ext3 journal. This version relies on | |
1678 | the kernel being able to mount the filesystem in order to | |
1679 | run the journal. | |
1680 | ||
9226904b TT |
1681 | 2000-07-05 Theodore Ts'o <tytso@valinux.com> |
1682 | ||
1683 | * unix.c (e2fsck_update_progress): Only save and check the last | |
1684 | percentage after multiplying it by 10, nor 1000, since we | |
1685 | only need to save values to a tenth of a percent (and the | |
1686 | percentage is already from 0 .. 100%, not 0 .. 1). | |
e4c8e885 TT |
1687 | Also, re-arrange the logic so that we do the time |
1688 | check only after doing the percentage check, and we | |
1689 | only advance the spinner if we're about to display it. | |
9226904b | 1690 | |
9cbfb8d0 TT |
1691 | 2000-07-04 Theodore Ts'o <tytso@valinux.com> |
1692 | ||
1693 | * pass1.c (e2fsck_pass1): Check to see if the ext3 s_last_orphan | |
1694 | field is set; if so, clear it, so that ext3 mounting code | |
1695 | won't get confused by the fact that we've cleared out the | |
1696 | orphaned inodes. | |
1697 | ||
bbd47d76 TT |
1698 | 2000-06-10 Theodore Ts'o <tytso@valinux.com> |
1699 | ||
1700 | * pass5.c (check_block_bitmaps, check_inode_bitmaps): Add error | |
1701 | checking for a "should never happen case". | |
1702 | ||
1703 | * problem.c, problem.h (PR_5_COPY_IBITMAP_ERROR, | |
1704 | PR_5_COPY_BBITMAP_ERROR): Add new error codes. | |
1705 | ||
d647a1ea TT |
1706 | 2000-05-27 Theodore Ts'o <tytso@valinux.com> |
1707 | ||
1708 | * pass1.c (pass1, check_size): Apply patch from Chris Wedgewood | |
1709 | (cw@foof.org) which checks to see if special devices have | |
1710 | a non-zero size, and deals with it. | |
1711 | ||
1712 | * problem.c, problem.h (PR1_SET_NONZSIZE): Add new problem code. | |
1713 | ||
1d279218 TT |
1714 | 2000-05-18 Theodore Ts'o <tytso@valinux.com> |
1715 | ||
1716 | * Makefile.in (install): Create a symbolic link for fsck.ext3 as | |
1717 | well. | |
1718 | ||
4ea0a110 TT |
1719 | 2000-05-08 Theodore Ts'o <tytso@valinux.com> |
1720 | ||
1721 | * problem.c, problem.h (PR_0_HURD_CLEAR_FILETYPE): Add new problem | |
1722 | code. | |
1723 | ||
1724 | * super.c (check_super_block): If the OS type in the superblock is | |
1725 | the Hurd, check to see if the filetype feature is set, and | |
1726 | offer to clear it if so. This needs to be done since the | |
1727 | Hurd doesn't properly support the filetype feature. | |
1728 | (And since the hurd allows the transmogrification of files | |
1729 | to special files and vice versa --- for no good reason | |
1730 | that I can understand --- it can't support the filetype | |
1731 | feature for the forseeable future, either.) | |
1732 | ||
373b8337 TT |
1733 | 2000-04-03 Theodore Ts'o <tytso@valinux.com> |
1734 | ||
1735 | * unix.c: For platforms that don't define optarg.h, manually | |
1736 | define optarg and optind. | |
1737 | ||
01fbc701 TT |
1738 | 2000-03-20 Theodore Ts'o <tytso@valinux.com> |
1739 | ||
1740 | * pass1.c (check_immutable, e2fsck_pass1_check_device_inode): | |
1741 | Check for the append-only as well as the immutable flag. | |
1742 | ||
1743 | * problem.c (PR_1_SET_IMMUTABLE): Adjust message to include | |
1744 | append-only flag. Fix comment for compression flag. | |
1745 | ||
06012323 TT |
1746 | 2000-02-12 <tytso@snap.thunk.org> |
1747 | ||
1748 | * unix.c (e2fsck_update_progress): Limit the number of updates to | |
1749 | the progress bars to 8 times a second. This allows a 9600 | |
1750 | baud console link to keep up. | |
1751 | ||
1917875f TT |
1752 | 2000-02-11 <tytso@snap.thunk.org> |
1753 | ||
1754 | * unix.c (main): If compression is enabled on the filesystem, | |
1755 | print a warning message (for now). | |
1756 | ||
1757 | * message.c: Add new compression shortcut: @c == compress | |
1758 | ||
1759 | * problem.c, problem.h (PR_1_COMPR_SET): Add new error code. | |
1760 | ||
1761 | * pass1.c (check_blocks): If the inode has EXT2_COMPRBLK_FL flag | |
1762 | set, check to see if the filesystem supports compression. | |
1763 | If it does pass this information down to process_block() | |
1764 | so it can treat the compressed block flag words | |
1765 | correctly. If not, offer to clear the flag, since it | |
1766 | shouldn't be set. | |
1767 | (process_block): If an inode has the compressed inode flag | |
1768 | set, allow EXT2FS_COMPRESSED_BLKADDR. | |
1769 | ||
1770 | * pass1b.c (process_pass1b_block, delete_file_block, | |
1771 | clone_file_block): | |
1772 | * pass2.c (deallocate_inode_block): Use HOLE_BLKADDR to check to | |
1773 | see if the block can be skipped. | |
1774 | ||
28ffafb0 TT |
1775 | 2000-02-08 <tytso@snap.thunk.org> |
1776 | ||
4ee4ad37 TT |
1777 | * util.c: Make resource tracking message more concise. |
1778 | ||
80c5d7e4 TT |
1779 | * e2fsck.h: |
1780 | * pass1.c (mark_table_blocks, e2fsck_pass1): Remove | |
1781 | ctx->block_illegal_map, since it's not needed by pass1, | |
1782 | and pass1b has been modified to calculate it manually if | |
1783 | needed. This reduces the memory footprint needed by e2fsck. | |
1784 | ||
1785 | * pass1b.c (check_if_fs_block): New static function which returns | |
1786 | whether or not a block overlaps with filesystem metadata. | |
1787 | This replaces consulting the block_illegal_map bitmap. | |
1788 | ||
28ffafb0 TT |
1789 | * Makefile.in: Call sync after finishing building all in this |
1790 | directory. | |
1791 | ||
1792 | * unix.c (PRS): sync the filesystem before trying to use | |
1793 | BLKFLSBUF, to minimize the chance of causing dirty blocks | |
1794 | to get dropped. | |
1795 | ||
1796 | * e2fsck.h: Manually define BLKFLSBUF if not defined, and we're on | |
1797 | a Linux/i386 system. | |
1798 | ||
1799 | * pass3.c (check_directory): Only do the loop detection algorithm | |
1800 | if we've searched over 2048 parent directories and haven't | |
1801 | found the end yet. This means that in the common case, we | |
1802 | don't allocate or clear the inode_loop_detection bitmap, | |
1803 | which for large systems, merely clearing the bitmap for | |
1804 | each directory was turning out to be quite expensive. | |
1805 | Thanks to Jani Jaakkola (jjaakkol@cs.helsinki.fi) for | |
1806 | identifying this problem. | |
1807 | ||
0c4a0726 TT |
1808 | 2000-02-06 Theodore Ts'o <tytso@valinux.com> |
1809 | ||
1810 | * badblocks.c, e2fsck.h, ehandler.c, emptydir.c, extend.c, | |
1811 | flushb.c, iscan.c, message.c, pass1.c, pass1b.c, pass3.c | |
1812 | pass4.c, pass5.c, problem.c, scantest.c, swapfs.c, | |
1813 | unix.c, util.c: Add Internationalization support as | |
1814 | suggested by Marco d'Itri <md@linux.it>. | |
1815 | ||
80e808fc TT |
1816 | 2000-02-02 Theodore Ts'o <tytso@valinux.com> |
1817 | ||
1818 | * e2fsck.h, flushb.c, scantest.c: Remove uneeded include of | |
1819 | linux/fs.h | |
1820 | ||
894edb2e TT |
1821 | 2000-01-18 Theodore Ts'o <tytso@valinux.com> |
1822 | ||
1823 | * Makefile.in: Since LIBUUID can sometimes include "-lsocket" | |
1824 | we need a separate DEPLIBUUID that can be used in | |
1825 | Makefile's dependency rules. | |
1826 | ||
a1ccadb4 TT |
1827 | 1999-11-23 <tytso@valinux.com> |
1828 | ||
1829 | * e2fsck.8.in: Update language about where to find a backup | |
1830 | superblock. | |
1831 | ||
5c36a2f8 TT |
1832 | 1999-11-19 <tytso@valinux.com> |
1833 | ||
86a63e92 TT |
1834 | * pass1.c (process_inodes): Add shortcut handling; if |
1835 | process_inodes_count is zero, return right away, to avoid | |
1836 | calling qsort with a non-positive count. | |
1837 | ||
ec8d2c3f TT |
1838 | * message.c (safe_print): Fix to properly display ^A, ^B, etc. and |
1839 | to print Delete as ^? | |
1840 | ||
5c36a2f8 TT |
1841 | * Makefile.in (distclean): Remove TAGS and Makefile.in.old from |
1842 | the source directory. | |
1843 | ||
cd086361 TT |
1844 | 1999-11-10 <tytso@valinux.com> |
1845 | ||
1846 | * Release of E2fsprogs 1.18 | |
1847 | ||
a846d2f4 TT |
1848 | 1999-11-10 <tytso@valinux.com> |
1849 | ||
1850 | * problem.c (fix_problem): Support a new flag, PR_PREEN_NO which | |
1851 | means the answer is assumed to be no in preen mode. This | |
1852 | is now used in the PR_1_SET_IMMUTABLE code, so that in | |
1853 | preen mode we ignore these inodes and just print a warning | |
1854 | message. | |
1855 | ||
6fdc7a32 TT |
1856 | 1999-11-09 <tytso@valinux.com> |
1857 | ||
1858 | * pass1.c (e2fsck_pass1): If the filesystem does not support | |
1859 | imagic inodes, if an inode has the imagic flag set, offer | |
1860 | to clear the imagic flag. If a valid device/fifo/socket | |
1861 | has the immutable flag set, call the new helper function | |
1862 | check_immutable() to offerto clear the immutable flag. | |
1863 | ||
1864 | * pass2.c (check_filetype): Use the new ext2_file_type() helper | |
1865 | function instead of calculating the file_type information | |
1866 | manually. | |
1867 | ||
1868 | * pass3.c (e2fsck_reconnect_file): When adding a link to | |
1869 | lost+found, calculate the filetype information so that | |
1870 | ext2fs_link() can use the information if applicable. | |
1871 | (get_lost_and_found): Create the /lost+found directory | |
1872 | with the correct filetype information if applicable. | |
1873 | ||
1874 | * util.c (ext2_file_type), e2fsck.h: New function which returns | |
1875 | the directory entry file type information given the | |
1876 | inode's mode bits. | |
1877 | ||
1878 | * problem.c, problem.h: Added new problem codes PR_1_SET_IMAGIC | |
1879 | and PR_1_SET_IMMUTABLE. | |
1880 | ||
7142db08 TT |
1881 | 1999-11-07 <tytso@valinux.com> |
1882 | ||
1883 | * pass4.c (e2fsck_pass4): Clear inode_imagic_map after freeing it, | |
1884 | to prevent it from getting freed twice. | |
1885 | ||
1886 | 1999-11-06 <tytso@valinux.com> | |
1887 | ||
1888 | * unix.c (main): Close the filesystem before freeing the context, | |
1889 | so that in the event of a free()-related segmentation | |
1890 | violation, the filesystem is properly closed and written | |
1891 | out. | |
1892 | ||
1893 | 1999-10-27 <tytso@valinux.com> | |
1894 | ||
1895 | * e2fsck.c (e2fsck_reset_context): When freeing | |
1896 | ctx->inode_reg_map, we weren't zero'ing | |
1897 | ctx->inode_reg_map, which could cause a segfault later on | |
1898 | in the e2fsck run. | |
1899 | ||
1900 | 1999-10-26 <tytso@valinux.com> | |
1901 | ||
1902 | * problem.h (PR_2_SPLIT_DOT): Fix excess zero in problem code (now | |
1903 | matches the standard convention). | |
1904 | ||
28e1194e TT |
1905 | 1999-10-26 <tytso@valinux.com> |
1906 | ||
1907 | * Release of E2fsprogs 1.17 | |
1908 | ||
f68aa414 TT |
1909 | 1999-10-26 <tytso@valinux.com> |
1910 | ||
1911 | * message.c (safe_print): Make safe_print take an char instead of | |
1912 | an unsigned char to fix gcc warnings. | |
1913 | ||
c40db6d5 TT |
1914 | 1999-10-25 <tytso@valinux.com> |
1915 | ||
e6597048 TT |
1916 | * util.c: For NT portability, don't redefine getchar(), since |
1917 | stdio defines that. Instead we introduce a new | |
1918 | abstract macro read_a_char() which is #defined to the | |
1919 | right function as necessary. | |
1920 | ||
c40db6d5 TT |
1921 | * problem.c, problem.h (PR_2_NULL_NAME): Add new problem code. |
1922 | ||
1923 | * pass2.c (check_dir_block): Require that the length of the | |
1924 | directory entry be at least 12 bytes. Check to see if the | |
1925 | filename is zero-length, and flag that as an error. | |
1926 | ||
614fdfd5 TT |
1927 | 1999-10-22 <tytso@valinux.com> |
1928 | ||
1929 | * Release of E2fsprogs 1.16 | |
1930 | ||
7847c1d4 TT |
1931 | 1999-10-22 <tytso@valinux.com> |
1932 | ||
1933 | * pass2.c (check_filetype): If the filetype filesystem feature is | |
1934 | not set, and a directory entry has a dirent feature, offer | |
1935 | to clear it (since 2.0 kernels will do complain will | |
1936 | interpret it as a very large name length field). | |
1937 | ||
1938 | * problem.c (PR_2_CLEAR_FILETYPE): Add new problem code. | |
1939 | ||
aa4115a4 TT |
1940 | 1999-10-21 <tytso@valinux.com> |
1941 | ||
caf8ce4c TT |
1942 | * e2fsck.8.in: Update man page to use a more standard format (bold |
1943 | option flags and italicized variables), as suggested by | |
1944 | Andreas Dilger (adilger@enel.ucalgary.ca) | |
1945 | ||
aa4115a4 TT |
1946 | * pass4.c (e2fsck_pass4): If an inode is set in the |
1947 | inode_imagic_map bitmap, don't check to see if it is | |
1948 | disconnected from the inode tree (because it almost | |
1949 | certainly will be). Free inode_imagic_map at the end of | |
1950 | pass 4. | |
1951 | ||
1952 | * pass2.c (check_dir_block, check_filetype): If the FILETYPE | |
1953 | feature is set, check the directory entry's filetype | |
1954 | information field, and fix/set it if necessary. | |
1955 | (e2fsck_pass2): Free the inode_reg_map bitmap at the end | |
1956 | of pass 2. | |
1957 | ||
1958 | * pass1.c (e2fsck_pass1, alloc_imagic_map): Allocate and fill in | |
1959 | information for inode_reg_map and inode_imagic_map, which | |
1960 | indicates which inodes are regular files and AFS inodes, | |
1961 | respectively. | |
1962 | Since only the master superblock is written during a | |
1963 | restart, force that superblock to be used after a restart; | |
1964 | otherwise changes to the block group descriptors end up | |
1965 | getting ignored. | |
1966 | ||
1967 | * problem.c, problemP.h: If e2fsck is run -n, make def_yn variable | |
1968 | be 0 for "no". Add support for a new flag, PR_NO_NOMSG, | |
1969 | which supresses the problem message if e2fsck is run with | |
1970 | the -n option. | |
1971 | ||
1972 | * problem.c, problem.h (PR_2_SET_FILETYPE, PR_2_BAD_FILETYPE): Add | |
1973 | new problem codes. | |
1974 | ||
1975 | * message.c (expand_dirent_expression): Add support for %dt which | |
1976 | prints the dirent type information. | |
1977 | ||
1978 | * e2fsck.c (e2fsck_reset_context): Free new bitmaps (inode_reg_map | |
1979 | and inode_imagic_map). | |
1980 | ||
1981 | * e2fsck.h (e2fsck_t): Add new inode_reg_map and inode_magic_map | |
1982 | to the context structure. | |
1983 | ||
9ecd8bec TT |
1984 | 1999-09-24 <tytso@valinux.com> |
1985 | ||
1986 | * unix.c (PRS), util.c (ask_yn): Add #ifdef's to make | |
1987 | e2fsprogs easier to port to non-Unix platforms. | |
1988 | ||
1989 | 1999-09-07 <tytso@valinux.com> | |
c1faf9cc TT |
1990 | |
1991 | * pass3.c (adjust_inode_count): Fix bug where we didn't keep the | |
1992 | internal and external inode counts in sync when we | |
1993 | decremented an inode whose link count was already zero. | |
1994 | Now we skip incrementing or decrementing both link counts | |
1995 | if we would cause an overflow condition. | |
1996 | (expand_dir, expand_dir_proc): Change where we update the | |
1997 | inode block count and size files so that the block count | |
1998 | field is updated correctly when we create an indirect block. | |
1999 | ||
78cf0547 TT |
2000 | 1999-08-05 <tytso@valinux.com> |
2001 | ||
2002 | * super.c (check_super_block): Check to see whether the | |
2003 | inodes_per_group value in the superblock is insanely too | |
2004 | high. | |
2005 | ||
c1faf9cc TT |
2006 | 1999-08-02 <tytso@valinux.com> |
2007 | ||
2008 | * pass1b.c (clone_file_block): Don't clear the dup_map flag if | |
2009 | the block also shares data with the fs metadata when | |
2010 | the count drops to 1, since the block should still be | |
2011 | cloned, as fs metadata isn't included in the count. | |
2012 | ||
2013 | 1999-07-18 Theodore Ts'o <tytso@valinux.com> | |
657cb975 TT |
2014 | |
2015 | * Release of E2fsprogs 1.15 | |
2016 | ||
b55199ea TT |
2017 | 1999-07-19 <tytso@valinux.com> |
2018 | ||
2019 | * unix.c (usage): Add minimalist emergency help to the usage | |
2020 | message. | |
2021 | ||
5596defa TT |
2022 | 1999-07-18 <tytso@valinux.com> |
2023 | ||
2024 | * unix.c: Add support for calculating a progress bar if the -C0 | |
2025 | option is given. The function e2fsck_clear_progbar() | |
2026 | clears the progress bar and must be called before any | |
2027 | message is issued. SIGUSR1 will enable the progress bar, | |
2028 | and SIGUSR2 will disable the progress bar. This is used | |
2029 | by fsck to handle parallel filesystem checks. Also, set | |
2030 | the device_name from the filesystem label if it is | |
2031 | available. | |
2032 | ||
2033 | * e2fsck.h: Add new flags E2F_FLAG_PROG_BAR and | |
2034 | E2F_FLAG_PROG_SUPRESS. Add new field in the e2fsck | |
2035 | structure which contains the last tenth of a percent | |
2036 | printed for the user. | |
2037 | ||
2038 | * message.c (print_e2fsck_message): Add call to | |
2039 | e2fsck_clear_progbar(). | |
2040 | ||
2041 | * pass1.c (e2fsck_pass1): | |
2042 | * pass2.c (e2fsck_pass2): | |
2043 | * pass3.c (e2fsck_pass3): | |
2044 | * pass4.c (e2fsck_pass4): | |
2045 | * pass5.c (e2fsck_pass5): Add call to e2fsck_clear_progbar when | |
2046 | printing the resource tracking information. | |
2047 | ||
2048 | * pass5.c (check_block_bitmaps, check_inode_bitmaps): If there is | |
2049 | an error in the bitmaps, suppress printing the progress | |
2050 | bar using the suppression flag for the remainder of the | |
2051 | check, in order to clean up the display. | |
2052 | ||
74033350 TT |
2053 | 1999-06-30 <tytso@valinux.com> |
2054 | ||
2055 | * unix.c (check_mount): Clean up the abort message displayed when | |
2056 | the filesystem is mounted and either stdout or stdin isn't | |
2057 | a tty. | |
2058 | ||
2059 | 1999-06-25 <tytso@valinux.com> | |
e72a9ba3 TT |
2060 | |
2061 | * e2fsck.h: | |
2062 | * pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode, | |
2063 | pass1_check_directory, e2fsck_use_inode_shortcuts): Make | |
2064 | pass1_* be private static functions, and create new | |
2065 | function e2fsck_use_inode_shortcuts which sets and clears | |
2066 | the inode shortcut functions in the fs structure. | |
2067 | ||
2068 | * e2fsck.h: | |
2069 | * pass2.c (e2fsck_process_bad_inode): Make process_bad_inode() an | |
2070 | exported function. | |
2071 | ||
2072 | * pass4.c (e2fsck_pass4): Call e2fsck_process_bad_inode to check | |
2073 | if a disconnected inode has any problems before | |
2074 | connecting it to /lost+found. Bug and suggested fix by | |
2075 | Pavel Machek <pavel@bug.ucw.cz> | |
2076 | ||
2077 | 1999-06-21 <tytso@valinux.com> | |
813bbb25 TT |
2078 | |
2079 | * unix.c (main): Add missing space in the disk write-protected | |
2080 | message. | |
2081 | ||
d4b0ce03 TT |
2082 | 1999-05-22 <tytso@rsts-11.mit.edu> |
2083 | ||
2084 | * problem.c, problem.h (PR_0_INODE_COUNT_WRONG): Add new problem | |
2085 | code. | |
2086 | ||
2087 | * super.c (check_super_block): Add check to make sure the total | |
2088 | number of inodes is sane, since this can be calculated | |
2089 | from the number of groups times the number of inodes per | |
2090 | group. Offer to correct it if it is incorrect. | |
2091 | ||
e79d1b23 TT |
2092 | 1999-03-19 <tytso@rsts-11.mit.edu> |
2093 | ||
2094 | * pass5.c (check_block_end): Fix fencepost condition where when | |
2095 | clearing the block padding we were missing the last position | |
2096 | in the bitmap. | |
2097 | ||
75d83bec TT |
2098 | 1999-05-17 <tytso@rsts-11.mit.edu> |
2099 | ||
2100 | * unix.c (reserve_stdio_fds): Add safety check in case | |
2101 | reserve_stdio_fds couldn't open /dev/null. | |
2102 | ||
4a9f5936 TT |
2103 | 1999-03-14 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2104 | ||
2105 | * util.c (print_resource_track): Use mallinfo if present to get | |
2106 | more accurate malloc statistics. | |
2107 | ||
2108 | * pass3.c (get_lost_and_found): Check to see if lost+found is a | |
c54b3c3c | 2109 | plain file; if so, offer to unlink it. |
4a9f5936 TT |
2110 | |
2111 | * problem.c, problem.h (PR_3_LPF_NOTDIR): Add new problem code. | |
2112 | ||
2113 | 1999-03-09 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2114 | ||
2115 | * problem.c: Fix problem message for PR_1_BAD_GROUP_DESCRIPTORS so | |
2116 | that the block group number is printed. Add new prompt, | |
2117 | PROMPT_UNLINK. | |
2118 | ||
2119 | 1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2120 | ||
2121 | * Release of E2fsprogs 1.14 | |
2122 | ||
9e51eca7 TT |
2123 | 1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2124 | ||
2125 | * message.c (safe_print): New function which prints strings, | |
2126 | converting non-printable characters using the '^' and | |
2127 | M-notation. This function is now used to print directory | |
2128 | name entries and pathnames. | |
2129 | ||
73f17cfc TT |
2130 | Mon Jan 4 02:28:59 1999 Theodore Y. Ts'o <tytso@mit.edu> |
2131 | ||
2132 | * unix.c (main): Reset the context before calling ext2fs_close(), | |
2133 | to avoid referencing already freed memory. | |
2134 | ||
556ad132 TT |
2135 | 1998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2136 | ||
2137 | * Release of E2fsprogs 1.13 | |
2138 | ||
5a679c8f TT |
2139 | 1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2140 | ||
2141 | * Makefile.in: Updated dependencies. | |
2142 | ||
2143 | 1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2144 | ||
2145 | * pass3.c (get_lost_and_found): If the filesystem is not opened | |
2146 | read-only, then force /lost+found to be created if it is | |
2147 | not present. | |
2148 | ||
2149 | * problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen | |
2150 | operation. | |
2151 | ||
1dde43f0 TT |
2152 | 1998-10-28 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2153 | ||
2154 | * unix.c (main): Move ext2fs_close() after e2fsck_free_context() | |
2155 | since e2fsck_free_context may reference data in ctx->fs. | |
2156 | ||
2157 | * e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL | |
2158 | before checking ctx->fs->dblist. | |
2159 | ||
2160 | 1998-10-09 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2161 | ||
2162 | * pass1.c (e2fsck_pass1): Use the device check subroutine on | |
2163 | FIFO's and Socket's, so that we catch bogus immutable inodes. | |
2164 | ||
2165 | * pass2.c (process_bad_inode): Process bad socket and fifo's. | |
2166 | ||
2167 | * problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and | |
2168 | PR_2_BAD_SOCKET. | |
2169 | ||
7f813ba3 TT |
2170 | 1998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2171 | ||
2172 | * problem.c: Add PR_3_NO_DIRINFO error code. | |
2173 | ||
2174 | * super.c (check_super_value): Rename min and max to min_val and | |
2175 | max_val to avoid possible cpp macro conflicts. | |
2176 | ||
2177 | * pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid | |
2178 | possible cpp macro conflicts. | |
2179 | ||
2180 | * pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible | |
2181 | cpp macro conflicts. | |
2182 | (check_directory): Fix logic to avoid possible core dump | |
2183 | in the case of ext2fs_get_dir_info returning NULL. (By | |
2184 | the time we get here, it should never happen, but...). | |
2185 | Also simply/streamline the control flow of the function. | |
2186 | ||
24fc5032 TT |
2187 | 1998-08-17 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2188 | ||
2189 | * unix.c (check_if_skip): Move the "not cleanly mounted" check | |
2190 | ahead of the maximal mount and too long since checked tests. | |
2191 | (reserve_stdio_fds): Make sure 0,1,2 file descriptors are | |
2192 | open, so that we don't open the filesystem using the same | |
2193 | file descriptor as stdout or stderr. | |
2194 | ||
f75c28de TT |
2195 | 1998-08-01 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2196 | ||
2197 | * pass2.c (e2fsck_pass2): Fix the progress accounting so that we | |
2198 | get to 100%. | |
2199 | ||
2200 | * pass3.c (e2fsck_pass3): Change progress accounting to be | |
2201 | consistent with the other e2fsck passes. | |
2202 | ||
2203 | * e2fsck.c (e2fsck_run): At the end of each pass, call the | |
2204 | progress function with the pass number set to zero. | |
2205 | ||
2206 | * unix.c (e2fsck_update_progress): If the pass number is zero, | |
2207 | ignore the call, since that indicates that we just want to | |
2208 | deallocate any progress structures. | |
2209 | ||
4a5fa192 TT |
2210 | 1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2211 | ||
2212 | * Release of E2fsprogs 1.12 | |
2213 | ||
8144d679 TT |
2214 | 1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2215 | ||
2216 | * unix.c (main): Fix typo in checking the incompat feature set; it | |
2217 | should be checked against EXT2_LIB_FEATURE_INCOMPAT_SUPP. | |
2218 | ||
1fad9048 TT |
2219 | 1998-07-07 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2220 | ||
2221 | * badblocks.c (test_disk): Don't clear the existing bad blocks | |
2222 | list when using e2fsck -c, since it may cause blocks with | |
2223 | marginal errors to be dropped from the bad blocks list. | |
2224 | ||
874b4d26 TT |
2225 | Mon Jul 6 10:32:11 1998 Theodre Ts'o <tytso@lurch.mit.edu> |
2226 | ||
2227 | * pass1.c (e2fsck_pass1): Use ext2fs_sb structure for | |
2228 | compatibility with older kernels. | |
2229 | ||
818180cd TT |
2230 | 1998-06-25 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2231 | ||
2232 | * unix.c (e2fsck_update_progress): Remove unused variables. | |
2233 | ||
9d1bd3de TT |
2234 | 1998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2235 | ||
2236 | * pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid | |
2237 | collision with LFS API. | |
2238 | ||
2239 | * pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is | |
2240 | properly initialized. | |
2241 | (e2fsck_pass1): Don't allow the the boot loader inode to | |
2242 | be a directory (clear the inode mode field if so). | |
2243 | ||
efac9a1b TT |
2244 | 1998-05-07 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2245 | ||
2246 | * unix.c (PRS): Added new option -C, which causes e2fsck to print | |
2247 | progress updates so that callers can keep track of the | |
2248 | completion progress of e2fsck. Designed for use by | |
2249 | progress, except for -C 0, which prints a spinning report | |
2250 | which may be useful for some users. | |
2251 | ||
2252 | * pass5.c (e2fsck_pass5): Use a finer-grained progress reporting | |
2253 | scheme (useful for larger filesystems). | |
2254 | ||
2255 | * e2fsck.h: Add progress_fd and progress_pos, for use by the Unix | |
2256 | progress reporting functions. | |
2257 | ||
4c77fe50 TT |
2258 | 1998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2259 | ||
2260 | * pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the | |
2261 | appropriate return type for comparison functions for qsort. | |
2262 | ||
2263 | * e2fsck.h: Add #ifdef protection for unistd.h | |
2264 | ||
2265 | * super.c: Remove header files already included by e2fsck.h | |
2266 | ||
76f875da TT |
2267 | 1998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2268 | ||
2269 | * dirinfo.c (e2fsck_add_dir_info): Update function to pass the old | |
2270 | size of the memory to be resized to ext2fs_resize_mem(). | |
2271 | ||
7e44f242 TT |
2272 | 1998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2273 | ||
2274 | * Makefile.in: Change to use new installation directory variables | |
2275 | convention. Fix uninstall rules to take $(DESTDIR) into | |
2276 | account. Remove cat8dir from the installdirs target, | |
2277 | since modern man package don't necessarily put the cat | |
2278 | directory in /usr/man/cat?. | |
2279 | ||
17dba281 TT |
2280 | 1998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2281 | ||
2282 | * super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an | |
2283 | extern in e2fsck.h to prevent -Wall warnings. | |
2284 | ||
2285 | * pass4.c (e2fsck_pass4): Remove unused variable 'j'. | |
2286 | ||
2287 | 1998-03-28 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2288 | ||
2289 | * super.c (check_super_block): Fix broken superblock sanity check | |
2290 | when calculating blocks_per_group if s_log_frag_size != | |
2291 | s_log_block_size. Since we don't support fragments, this | |
2292 | isn't a bug deal, but it's good to get it fixed. | |
2293 | ||
246501c6 TT |
2294 | 1998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2295 | ||
2296 | * unix.c: Fix bug in check of feature set, to make sure we can | |
2297 | really fix this filesystem. | |
2298 | ||
2299 | * problem.h: Make blkcount type to be of type blkcnt_t. Make the | |
2300 | num field be a 64 bit type. Add the problem code | |
2301 | PR_1_FEATURE_LARGE_FILES | |
2302 | ||
2303 | * problem.c: Add table entry for the problem code | |
2304 | PR_1_FEATURE_LARGE_FILES. | |
2305 | ||
2306 | * pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only | |
2307 | a problem for directory inodes. (Since it is also | |
2308 | i_size_high now.) If there are no large_files, then | |
2309 | clear the LARGE_FLAG feature flag. If there are | |
2310 | large_files, but the LARGE_FLAG feature flag is not set, | |
2311 | complain and offer to fix it. | |
2312 | (check_blocks): Add support to deal with non-directory | |
2313 | inodes that have i_size_high set (i.e., large_files). | |
2314 | Don't give an error if a directory has preallocated | |
2315 | blocks, to support the DIR_PREALLOC feature. | |
2316 | (process_block, process_bad_block): The blockcnt variable | |
2317 | is a type of blkcnt_t, for conversion to the new | |
2318 | block_iterate2. | |
2319 | ||
2320 | * pass2.c (process_bad_inode): A non-zero i_dir_acl field is only | |
2321 | a problem for directory inodes. (Since it is also | |
2322 | i_size_high now.) | |
2323 | ||
2324 | * message.c (expand_inode_expression): Print a 64-bits of the | |
2325 | inode size for non-directory inodes. (Directory inodes | |
2326 | can only use a 32-bit directory acl size, since | |
2327 | i_size_high is shared with i_dir_acl.) Add sanity check | |
2328 | so that trying to print out the directory acl on a | |
2329 | non-directory inode will print zero. | |
2330 | (expand_percent_expression): %B and %N, which print | |
2331 | pctx->blkcount and pctx->num, can now be 64 bit | |
2332 | variables. Print them using the "%lld" format if | |
2333 | EXT2_NO_64_TYPE is not defined. | |
2334 | ||
2335 | * e2fsck.h: Add the large_flagsfield to the e2fsck context. | |
2336 | ||
2337 | * e2fsck.c (e2fsck_reset_context): Clear the large_flags | |
2338 | field. | |
2339 | ||
b6f79831 TT |
2340 | Sun Mar 8 23:08:08 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2341 | ||
2342 | * pass3.c (fix_dotdot_proc): | |
2343 | * pass2.c (check_dot, check_dotdot, check_name, check_dir_block): | |
2344 | * message.c (expand_dirent_expression): Mask off the high eight | |
2345 | bits of the directory entry's name_len field, so that it | |
2346 | can be used for other purposes. | |
2347 | ||
2df1f6aa TT |
2348 | Fri Feb 27 00:01:39 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2349 | ||
2350 | * e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't | |
2351 | include EXT2_FLAG_RESTART anymore, we need to adjust this | |
2352 | routine so that it *does* return in the case of it seeing | |
2353 | EXT2_FLAG_RESTART. | |
2354 | ||
2355 | * pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group | |
2356 | done callback function, which may set context abort | |
2357 | flags. So we need to test the context abort flags after | |
2358 | we call ext2_get_next_inode(). | |
2359 | (process_inodes): If we abort due out of process_inodes, | |
2360 | do a clean exit by breaking out of the for loop instead of | |
2361 | just returning. | |
2362 | ||
2363 | * e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be | |
2364 | considered a SIGNAL mask (i.e., requiring an immediate | |
2365 | abort of processing to restart). FLAG_RESTART just means | |
2366 | that we want to restart once pass 1 is complete. | |
2367 | ||
a02ce9df TT |
2368 | Tue Feb 24 15:19:40 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2369 | ||
2370 | * Change the progress function to return an integer; if returns 1, | |
2371 | then the progress function is expected to have set the | |
2372 | e2fsck context flag signalling a user abort, and the | |
2373 | caller should also initiate a user abort. | |
2374 | ||
63c4969c TT |
2375 | Tue Feb 17 19:03:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2376 | ||
2377 | * pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call | |
2378 | end_problem_latch() unless there was actually a problem | |
2379 | latched. Simplifies semantics of the latch processing. | |
2380 | ||
4313932c TT |
2381 | Mon Feb 16 17:31:44 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2382 | ||
2383 | * e2fsck.h: Add new field, priv_data to the e2fsck context | |
2384 | structure. It should be used by callers of the e2fsck | |
2385 | functions only, and not by anything in e2fsck itself. | |
2386 | ||
2387 | Mon Feb 7 17:31:04 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2388 | ||
2389 | * super.c: Instead of call ext2fs_get_device_size(), define and call | |
2390 | e2fsck_get_device_size(). (This function may be stubbed | |
2391 | out in special versions of e2fsck.) | |
2392 | ||
2393 | * pass3.c, pass4.c: Remove extra calls to the progress function | |
2394 | that weren't needed. | |
2395 | ||
2396 | * mke2fs.8.in: Update man page to note that the format of the bad | |
2397 | block file is the same as the one generated by badblocks. | |
2398 | ||
54be2ccc TT |
2399 | Sun Feb 1 07:57:14 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2400 | ||
2401 | * dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed. | |
2402 | ||
2403 | * e2fsck.h: Include <time.h> since it is needed | |
2404 | ||
2405 | * super.c: If EXT2_SKIP_UUID is defined, then skip the UUID | |
2406 | processing. | |
2407 | ||
24dd4028 TT |
2408 | Tue Jan 20 15:37:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2409 | ||
2410 | * unix.c (main): In the case where the filesystem revision is too | |
2411 | high, print the message about the superblock possibly | |
2412 | being corrupt. | |
2413 | ||
2414 | * e2fsck.8.in: Add expanded comments about how the -b option | |
2415 | works. | |
2416 | ||
54dc7ca2 TT |
2417 | Sat Jan 17 13:02:16 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2418 | ||
2419 | * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of | |
2420 | the ext2-specific header files are in a flat directory. | |
2421 | ||
2422 | * dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c, | |
2423 | super.c, swapfs.c, unix.c: Explicitly cast all assignments | |
2424 | from void * to be compatible with C++. | |
2425 | ||
2426 | Tue Jan 6 11:30:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2427 | ||
2428 | * unix.c (sync_disk): Remove sync_disk and calls to that function, | |
2429 | since ext2fs_close() now takes care of this. | |
2430 | ||
2431 | Mon Dec 29 14:45:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2432 | ||
2433 | * pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c, | |
2434 | ehandler.c, unix.c: Change use of private to be priv_data, | |
2435 | to avoid C++ reserved name clash. | |
2436 | ||
5be8dc21 TT |
2437 | Fri Nov 28 09:30:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2438 | ||
2439 | * dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead | |
2440 | of e2fsck_get_num_dirs, which has been removed. | |
2441 | ||
2442 | Tue Nov 25 15:54:35 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2443 | ||
2444 | * Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want | |
2445 | to compile and install flushb. | |
2446 | ||
7fdfabd3 TT |
2447 | Mon Nov 24 06:48:00 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2448 | ||
2449 | * pass1.c (e2fsck_pass1_check_device_inode): For now, only check | |
2450 | to make sure the extra i_blocks in a device are cleared if | |
2451 | the immutable flag is set. | |
2452 | ||
2453 | * util.c (print_resource_track): Fix typo which caused the | |
2454 | time/resource tracking to print "Pass 1 :" instead of | |
2455 | "Pass 1: ". | |
2456 | ||
b8647faa TT |
2457 | Thu Nov 20 16:02:23 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2458 | ||
2459 | * pass3.c (expand_directory): Fix bug which could cause core dump | |
2460 | when expanding the directory, and the bitmaps hadn't yet | |
2461 | been read in. Also, only use ext2fs_write_dir_block when | |
2462 | writing a directory block, not when writing out a fresh | |
2463 | indirect block. | |
2464 | ||
8039c480 TT |
2465 | Wed Nov 19 16:15:44 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2466 | ||
2467 | * pass1.c (process_bad_block): Fix bug where first_block wasn't | |
2468 | getting incremented, which caused user to get a | |
2469 | "Programming error?" warning if there was a bad block in a | |
2470 | non-primary superblock/group_descriptor. Also fixed | |
2471 | another bug so that ext2fs_bg_has_super() is consulted, to | |
2472 | avoid problems when using a filesystem with the | |
2473 | sparse_groups option set and there are bad blocks at the | |
2474 | beginning of a group which doesn't have a superblock. | |
2475 | ||
f8188fff TT |
2476 | Thu Nov 6 16:10:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2477 | ||
2478 | * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the | |
2479 | progress indicator function. | |
2480 | ||
2481 | * pass1.c (scan_callback): Add call to the progress feedback | |
2482 | function (if it exists). | |
2483 | ||
2484 | Tue Nov 4 09:45:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2485 | ||
2486 | * super.c (check_super_block): Skip the device size check if the | |
2487 | get_device_size returns EXT2_EXT_UNIMPLEMENTED. | |
2488 | ||
2489 | * iscan.c (main): Don't use fatal_error() anymore. | |
2490 | ||
2491 | * pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of | |
2492 | calling fatal_error(0). | |
2493 | ||
2494 | * problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT, | |
2495 | PR_3_NO_ROOT_INODE_ABORT): New problem codes. | |
2496 | ||
2497 | * problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code. | |
2498 | ||
2499 | * problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code. | |
2500 | ||
2501 | * problemP.h: New file which separates out the private fix_problem | |
2502 | data structures. | |
2503 | ||
2504 | * util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c, | |
2505 | swapfs.c util.c: allocate_memory() now takes a e2fsck | |
2506 | context as its first argument, and rename it to be | |
2507 | e2fsck_allocate_memory(). | |
2508 | ||
08b21301 TT |
2509 | Mon Nov 3 14:35:29 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2510 | ||
68227542 TT |
2511 | * unix.c (main): Add a special case check for the error code EROFS |
2512 | and display an appropriate error message for this case. | |
2513 | ||
08b21301 TT |
2514 | * [lots of files]: Change ext2fs_read_inode, ext2fs_write_inode |
2515 | to take the e2fsck context as their first argument. | |
2516 | Change dir_info.c routines to take an e2fsck_context, | |
2517 | renamed them to start with e2fsck_ to avoid namespace | |
2518 | issues, and changed them to store the directory | |
2519 | information inside the e2fsck context. | |
2520 | Added e2fsck_run() which calls all of the e2fsck passes in | |
2521 | the correct order, and which handles the return of abort | |
2522 | codes. Added abort processing, both via setjmp/longjmp | |
2523 | and via flags in the e2fsck context. Use a flag in the | |
2524 | e2fsck context instead of the restart_e2fsck global | |
2525 | variable. Change uses of free and malloc to | |
2526 | ext2fs_free_mem and ext2fs_get_mem. | |
2527 | ||
291c9049 TT |
2528 | Fri Oct 31 01:12:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2529 | ||
2530 | * pass1.c, pass3.c: Rename new error codes to _ET_ in them for | |
2531 | consistency. | |
2532 | ||
c555aebd TT |
2533 | Sat Oct 25 00:10:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2534 | ||
2535 | * pass3.c (get_lost_and_found): Check error return of | |
2536 | EXT2_FILE_NOT_FOUND instead of ENOTDIR | |
2537 | ||
2538 | * pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY | |
2539 | instead of ENOTDIR | |
2540 | ||
622f5f27 TT |
2541 | Fri Oct 24 00:12:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2542 | ||
519149fb TT |
2543 | * unix.c (PRS): Make the variable which getopt returns into be |
2544 | an int, so that it won't lose on platforms where char is | |
2545 | unsigned. | |
2546 | ||
622f5f27 TT |
2547 | * pass1b.c (clone_file): Fix bug in error reporting in the case |
2548 | where cs.errcode is non-zero. | |
2549 | ||
b2da22d1 TT |
2550 | Sun Oct 19 21:12:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2551 | ||
8bf191e8 TT |
2552 | * pass*.c, super.c, unix.c, util.c, e2fsck.h: Place #ifdef |
2553 | RESOURCE_TRACK around code which uses init_resource_track | |
2554 | and print_resource_track. (Not all systems have timeval) | |
2555 | ||
b2da22d1 TT |
2556 | * super.c: Remove excess #includes which are not necessary. |
2557 | ||
2558 | * e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H | |
2559 | ||
1b6bf175 TT |
2560 | Fri Oct 3 13:40:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2561 | ||
2562 | * pass*.c, super.c: Massive changes to avoid using printf and | |
2563 | com_err routines. All diagnostic messages are now routed | |
2564 | through the fix_problem interface. | |
2565 | ||
2566 | Sat Sep 6 17:13:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2567 | ||
2568 | * pass2.c (check_dir_block): Check for duplicate '.' and '..' | |
2569 | entries. | |
2570 | ||
2571 | * problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and | |
2572 | PR_2_DUP_DOT_DOT. | |
2573 | ||
2574 | Tue Sep 2 09:04:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2575 | ||
2576 | * problem.c: Added new problem codes for some of the | |
2577 | superblock corruption checks, and for the pass header | |
2578 | messages. ("Pass 1: xxxxx") | |
2579 | ||
2580 | * util.c (print_resource_track): Now takes a description | |
2581 | argument. | |
2582 | ||
2583 | Mon Aug 25 10:23:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2584 | ||
2585 | * super.c, unix.c, e2fsck.c: New files to separate out the | |
2586 | operating-specific operations out from e2fsck.c. | |
2587 | e2fsck.c now contains the global e2fsck context management | |
2588 | routines, and super.c contains the "pass 0" initial | |
2589 | validation of the superblock and global block group | |
2590 | descriptors. | |
2591 | ||
2592 | * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate | |
2593 | (nearly) all global variables and moved them to the e2fsck | |
2594 | context structure. | |
2595 | ||
2596 | * problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT, | |
2597 | PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS, | |
2598 | PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK | |
2599 | ||
7cf73dcd TT |
2600 | Thu Aug 14 10:55:21 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2601 | ||
2602 | * message.c: Add compression for the word "Illegal" | |
2603 | ||
2604 | * problem.c: Added entries for PR_2_BAD_CHAR_DEV and | |
2605 | PR_2_BAD_BLOCK_DEV | |
2606 | ||
2607 | Wed Aug 13 09:55:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2608 | ||
2609 | * pass1.c (pass1, check_device_inode), pass2.c | |
2610 | (process_bad_inode): Use a more stringent test for a valid | |
2611 | device. | |
2612 | ||
a47b66ee TT |
2613 | Sun Aug 10 18:58:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2614 | ||
2615 | * e2fsck.c (check_mount): Add stronger warning message about the | |
2616 | perils of running e2fsck on a mounted filesystem. | |
2617 | ||
024996cf TT |
2618 | Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2619 | ||
2620 | * Release of E2fsprogs 1.11 | |
2621 | ||
da2e97f7 TT |
2622 | Thu Jun 12 00:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2623 | ||
2624 | * pass1.c (mark_table_blocks): Mark the superblock and group | |
2625 | descriptor blocks first, so that any conflicts between | |
2626 | these and the bitmap or inode table blocks is noticed. | |
2627 | ||
2628 | * problem.c: Fix message printed out when a block or inode bitmap | |
2629 | conflicts with other fs data, has the correct group number | |
2630 | in it. | |
2631 | ||
7ac02a5e TT |
2632 | Tue Jun 10 12:07:37 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2633 | ||
2634 | * pass2.c (pass2): Check the error return from ext2fs_dblist_iterate. | |
2635 | ||
f635d7f6 TT |
2636 | Thu May 8 22:45:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2637 | ||
583ccdc3 TT |
2638 | * e2fsck.8.in: Fix minor typos and grammer oops found by Bill |
2639 | Hawes (whawes@star.net). | |
2640 | ||
f635d7f6 TT |
2641 | * badblocks.c (read_bad_blocks_file): Pass the blocksize to the |
2642 | bad blocks command so that all of the filesystem gets | |
2643 | tested in the case where the blocksize 2048 or 4096. | |
2644 | ||
a29f4d30 TT |
2645 | Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu> |
2646 | ||
2647 | * Release of E2fsprogs version 1.10 | |
2648 | ||
2649 | Mon Apr 21 22:43:08 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2650 | ||
2651 | * pass1b.c (pass1b): While scanning for inodes, simply skip inodes | |
2652 | where ext2fs_get_next_inode returns the | |
2653 | EXT2_ET_BAD_BLOCK_IN_INODE_TABLE error. | |
2654 | ||
2655 | Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2656 | ||
2657 | * Release of E2fsprogs version 1.09 | |
2658 | ||
2ecc6fef TT |
2659 | Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2660 | ||
2661 | * Release of E2fsprogs version 1.08 | |
2662 | ||
521e3685 TT |
2663 | Thu Apr 10 13:51:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2664 | ||
2665 | * pass1b.c (clone_file_block): If we clone a directory, we need to | |
2666 | update the dblist entry so that we check (and correct) the | |
2667 | right directory block. | |
2668 | ||
2669 | Sun Apr 6 09:13:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2670 | ||
2671 | * pass1.c (process_block): Don't clear blocks references to | |
2672 | filesystem metadata; let pass 1B handle this case. | |
2673 | ||
2674 | * problem.c, problem.h: Add new problem, PR_1B_SHARE_METADATA. | |
2675 | ||
2676 | * pass1b.c (pass1d): Deal with a block which is shared with | |
2677 | filesystem metadata. | |
2678 | ||
2679 | * e2fsck.h: Make block_illegal_map be a global variable | |
2680 | ||
2681 | Sat Apr 5 11:51:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2682 | ||
2683 | * e2fsck.c, pass1.c (mark_table_blocks): Support the sparse_super | |
2684 | feature. | |
2685 | (get_backup_sb): New function which attempts to obtain the | |
2686 | correct backup superblock (if possible). | |
2687 | ||
2688 | Fri Apr 4 10:46:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2689 | ||
2690 | * e2fsck.c (main): Check the version of the library, and warn if | |
2691 | the library is out of date; this happens generally due to | |
2692 | users who manually install e2fsprogs. | |
2693 | ||
2694 | * pass1.c (pass1_get_blocks): If the passed in inode number for | |
2695 | get_blocks isn't what we're expecting pass back | |
2696 | EXT2_ET_CALLBACK_NOT_HANDLED. | |
2697 | ||
21c84b71 TT |
2698 | Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu> |
2699 | ||
2700 | * Release of E2fsprogs version 1.07 | |
2701 | ||
2702 | Tue Mar 11 10:31:47 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2703 | ||
2704 | * icount.c: New file which implements an inode count abstraction. | |
2705 | This significantly reduces amount of memory needed to | |
2706 | check really large filesystems. | |
2707 | ||
2708 | * pass1.c, pass2.c, pass3.c, pass4.c: Modified to use the icount | |
2709 | abstraction. | |
2710 | ||
2711 | Fri Mar 7 08:28:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2712 | ||
2713 | * dirinfo.c (dir_info_iter): New function which allows iteration | |
2714 | over the directories in the dir_info map. | |
2715 | ||
2716 | * pass3.c (pass3, check_directory): Speed up pass 3 by iterating | |
2717 | over all directories in the dir_info structure, instead of | |
2718 | iterating all inodes looking for directories, and then | |
2719 | looking up the directories using get_dir_info(). | |
2720 | ||
2721 | Sat Feb 1 11:33:43 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2722 | ||
2723 | * pass1.c (pass1, process_block): | |
2724 | * pass2.c (pass2): Use the ext2_dblist abstraction instead of | |
2725 | manual code to manage the directory block list information. | |
2726 | ||
2727 | * pass1.c (check_blocks), pass1b.c (pass1b), pass2.c | |
2728 | (deallocate_inode): Call the ext2 library routine | |
2729 | ext2_inode_has_valid_blocks() instead of | |
2730 | inode_has_valid_blocks(). | |
2731 | ||
2732 | * swapfs.c (swap_inodes): Add check so that we don't try to call | |
2733 | swap_inode_blocks unless the inode has valid blocks. | |
2734 | (Otherwise a long fast symlink might cause | |
2735 | swap_inode_blocks to erroneously get called.) | |
2736 | ||
2737 | Wed Jan 22 14:42:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2738 | ||
2739 | * problem.c, problem.h: Added entries for PR_2_DOT_NULL_TERM and | |
2740 | PR_2_DOT_DOT_NULL_TERM. | |
2741 | ||
2742 | * pass2.c (check_dot, check_dot_dot): Make sure the new . and | |
2743 | .. entries are null-terminated, since the 2.0 kernel | |
2744 | requires this (for no good reason). | |
2745 | ||
2746 | Mon Jan 20 20:05:11 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2747 | ||
2748 | * pass1.c (pass1): Set the EXT2_SF_SKIP_MISSING_ITABLE flag so | |
2749 | that we can recover from missing inode tables. | |
2750 | ||
2751 | * dirinfo.c (get_dir_info): If there are no directories in the | |
2752 | dir_info abstraction, don't core dump (because dir_info is | |
2753 | NULL). | |
2754 | ||
2755 | * e2fsck.c (main): Don't try using the backup superblocks if there | |
2756 | aren't any. | |
2757 | (check_super_block): If there are illegal inode table or | |
2758 | bitmaps, set the filesystem as being in error. | |
2759 | ||
2760 | Wed Jan 15 11:32:01 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2761 | ||
2762 | * pass2.c (check_dir_block): Added check to make sure that rec_len | |
2763 | is a a multiple of 4 (so that the directory entries are | |
2764 | 4-byte aligned). | |
2765 | ||
2766 | Sat Dec 28 12:16:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2767 | ||
2768 | * Makefile.in (uninstall): Uninstall all programs in the PROGS | |
2769 | line. | |
2770 | (PROGS): Don't build and install the extend program by | |
2771 | default. | |
2772 | ||
2773 | ||
2774 | Sat Dec 7 16:41:02 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2775 | ||
2776 | * pass1.c (process_inodes): Make sure the stashed_ino variable is | |
2777 | saved and restored as well. | |
2778 | (pass1): For fast sym links, skip the check_blocks | |
2779 | processing step altogether. | |
2780 | ||
2781 | Mon Dec 2 09:28:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2782 | ||
2783 | * problem.c, message.c: New files, to completely refurbish how | |
2784 | filesystem problems are reported to the user. The | |
2785 | diagnostic messages are now encoded out in an easily | |
2786 | customizable, extensible format. The messages printed out | |
2787 | in preen mode are all on one line, and contain the device | |
2788 | name. | |
2789 | ||
2790 | Fri Nov 29 20:26:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2791 | ||
2792 | * swapfs.c (swap_inodes): When swapping a filesystem, ignore | |
2793 | deleted files. | |
2794 | ||
2795 | * pass1.c (pass1): Ignore missing inode table errors during the | |
2796 | scan, and just skip past those inodes. | |
2797 | ||
2798 | * pass3.c (check_root): Remove root_ino argument, and assume that | |
2799 | the root inode must be EXT2_ROOT_INO. Move responsibility | |
2800 | of setting the parent of the root inode in the directory | |
2801 | inode structure to pass2(). | |
2802 | ||
2803 | * pass2.c (check_dir_block): Don't allow links to the root | |
2804 | directory. | |
2805 | ||
2806 | * dirinfo.c (add_dir_info): Remove last argument to add_dir_info, | |
2807 | since the inode is no longer used. | |
2808 | ||
2809 | Tue Oct 15 00:06:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2810 | ||
2811 | * e2fsck.c (main): If the superblock magic number is wrong, or the | |
2812 | block group fails a sanity check, then automatically | |
2813 | restart trying to use the backup superblocks. | |
2814 | ||
2815 | * pass1.c (mark_table_blocks): Make the inode tables ahead of | |
2816 | everything else; in the case where a bitmap block overlays | |
2817 | the inode table, the inode table should take precedence. | |
2818 | ||
2819 | * pass2.c (maybe_clear_entry): Make the deleted/unused error | |
2820 | message fit on one line, since the error can happen during | |
2821 | a preen pass. (We eventually need to revamp the whole | |
2822 | e2fsck error reporting and prompting system, but that's a | |
2823 | job for another day.) | |
2824 | ||
2825 | Mon Oct 14 22:29:49 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2826 | ||
2827 | * e2fsck.c (main): Read in the list badblocks into fs->badblocks | |
2828 | for the benefit of the inode scan functions. | |
2829 | ||
2830 | * pass1.c (pass1): If ext2fs_get_next_inode() returns an error | |
2831 | indicating that an inode is in a bad block, mark that | |
2832 | inode as being used, as well as in the inode "bb" map. | |
2833 | ||
2834 | * pass2.c (maybe_clear_entry): New function which generalizes the | |
2835 | error cases when a directory entry needs to be cleared. | |
2836 | (check_dir_block): If an inode is in the "bb" map, offer | |
2837 | to clear the directory entry, since the inode is in a bad | |
2838 | block. | |
2839 | ||
2840 | * pass4.c (pass4): If an inode is marked as used, but is is marked | |
2841 | in the "bb" map, don't process it as a disconnected inode. | |
2842 | ||
2843 | Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2844 | ||
2845 | * Release of E2fsprogs version 1.06 | |
2846 | ||
5c576477 TT |
2847 | Mon Oct 7 00:45:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2848 | ||
2849 | * e2fsck.c (main): Print out the version number of the shared | |
2850 | library when using the -V option. | |
2851 | ||
2852 | * swapfs.c (swap_filesys): Change EXT2_SWAP to EXT2_FLAG_SWAP for | |
2853 | consistency's sake. | |
2854 | ||
2855 | * e2fsck.c (main): By setting EXT2_FLAG_MASTER_SB_ONLY, only write | |
2856 | out the backup superblocks when we know we have a valid | |
2857 | filesystem. | |
2858 | ||
2859 | Tue Oct 1 22:00:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2860 | ||
2861 | * util.c (preenhalt): Make it explicit on preenhalt that running | |
2862 | e2fsck manually means without the -a or -p flag. | |
2863 | ||
2864 | Fri Sep 27 14:41:08 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2865 | ||
2866 | * pass1.c (pass1): Add support for the EXT2_BOOT_LOADER inode. | |
2867 | (Linux/FT actually sets the mode bits, so we have to | |
2868 | handle it specially.) | |
2869 | ||
2870 | * e2fsck.c (check_if_skip): Print a message if the filesystem is | |
2871 | just dirty, so that the user knows that it's about to be | |
2872 | checked (since this will take a while). | |
2873 | ||
2874 | Mon Sep 16 17:00:01 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2875 | ||
2876 | * pass4.c: If a disconnected inode is zero-length, prompt to | |
2877 | delete it instead of connecting it to lost+found. | |
2878 | ||
2879 | Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2880 | ||
2881 | * Release of E2fsprogs version 1.05 | |
2882 | ||
1e3472c5 TT |
2883 | Fri Aug 30 20:24:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2884 | ||
2885 | * pass4.c (pass4): If the user refuses to connect an unattached | |
2886 | inode to lost+found, don't try to set i_links_count. This | |
2887 | is bad, since if the user says yes, the inode will be | |
2888 | marked as unused, which is not necessarily the right | |
2889 | thing, especially since the rest of the cleanup doesn't | |
2890 | happen here. | |
2891 | ||
2892 | * pass2.c (deallocate_inode): Set inode_link_info[ino] when | |
2893 | dellocating an inode. (Not strictly necessary, but...) | |
2894 | ||
2895 | * pass4.c (pass4): Add "bonehead" explanation to the "programming | |
2896 | error" message. | |
2897 | ||
2898 | Tue Aug 27 11:26:32 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2899 | ||
2900 | * e2fsck.c (PRS,main): Added new options -s and -S. -s will | |
2901 | byte-swap the filesystem so that it is normalized. -S | |
2902 | will byte-swap the filesystem regardless of its current | |
2903 | byte-order. | |
2904 | ||
2905 | * swapfs.c: New file, which will byte-swap a filesystem. | |
2906 | ||
2907 | Tue Aug 20 09:41:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2908 | ||
2909 | * pass1.c (pass1): Change handling on files with non-zero dtime | |
2910 | and non-zero i_link_count; before we treated them as | |
2911 | deleted file per botched ext2 0.3c kernel behavior. We | |
2912 | now clear dtime instead. | |
2913 | ||
2914 | Mon Aug 19 23:33:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2915 | ||
2916 | * e2fsck.c (main): If e2fsck sets the clean bit, even if | |
2917 | nothing else is changed, make sure FSCK_NONDESTRUCT is | |
2918 | set (since after all having the filesystem set to | |
2919 | invalid is an error. :-) | |
2920 | ||
2921 | Fri Aug 9 10:25:13 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2922 | ||
2923 | * pass1.c (process_block): Make sure that meta data doesn't get | |
2924 | accidentally set in the dir_blocks array (which could | |
2925 | happen in some error condtions). | |
2926 | ||
2927 | * pass1.c (pass1): | |
2928 | * pass2.c (process_bad_inode): Check for fragments in a | |
2929 | OS-independent fashion. | |
2930 | ||
2931 | Thu Aug 8 15:20:54 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2932 | ||
2933 | * e2fsck.c (check_if_skip): Close the filesystem when skipping the | |
2934 | cleanup for the filesystem. | |
2935 | ||
2936 | Mon Jul 22 22:03:28 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2937 | ||
2938 | * e2fsck.c: Improve corrupt_msg, so that it's less confusing. | |
2939 | ||
62c06f79 TT |
2940 | Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> |
2941 | ||
2942 | * Release of E2fsprogs version 1.04 | |
2943 | ||
2944 | Wed May 15 21:41:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> | |
2945 | ||
2946 | * e2fsck.c (relocate_hint): Issue a hint that the user may wish to | |
2947 | try "e2fsck -b 8193" before allowing e2fsck to relocate | |
2948 | inode table blocks. | |
2949 | ||
2950 | * Makefile.in (e2fsck): Build e2fsck statically or dynamically | |
2951 | depending on the option to configure. Added targets for | |
2952 | e2fsck.static and e2fsck.shared for people who want to | |
2953 | build a static or shared variant manually. | |
2954 | ||
7f88b043 TT |
2955 | Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu> |
2956 | ||
2957 | * Release of E2fsprogs version 1.03 | |
2958 | ||
2959 | Tue Mar 26 12:03:42 1996 <tytso@rsts-11.mit.edu> | |
2960 | ||
2961 | * e2fsck.c (show_stats): Don't use floating point to display | |
2962 | percentage of non-contiguous files, as different libc | |
2963 | handle result truncation differently, and this causes the | |
2964 | test suite to bomb out depending on which libc you are | |
2965 | using. | |
2966 | ||
2967 | * util.c (allocate_memory): Fix error message to omit extraneous | |
2968 | %%s. | |
2969 | ||
2970 | Tue Mar 5 03:50:40 1996 <tytso@rsts-11.mit.edu> | |
2971 | ||
2972 | * pass4.c (pass4): | |
2973 | * pass2.c (check_dir_block): | |
2974 | * pass1.c (pass1): Add support for dynamic first inode revision. | |
2975 | ||
2976 | Wed Feb 14 16:27:30 1996 <tytso@rsts-11.mit.edu> | |
2977 | ||
2978 | * pass3.c (check_root): Fix spelling typo | |
2979 | ||
2980 | Mon Feb 5 22:30:30 1996 <tytso@rsts-11.mit.edu> | |
2981 | ||
2982 | * e2fsck.c (check_super_block): If the superblock fails certain | |
2983 | internal consistency checks, exit with a fatal error after | |
2984 | printing the "superblock is corrupt message". | |
2985 | ||
74becf3c TT |
2986 | Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu> |
2987 | ||
2988 | * Release of E2fsprogs version 1.02 | |
2989 | ||
2990 | Wed Dec 15 21:24:26 1996 <tytso@rsts-11.mit.edu> | |
2991 | ||
2992 | * pass1.c (process_block): Check to see if a file is "fragmented". | |
2993 | i.e., non-contiguous. Note that any file which is larger | |
2994 | than the block group is guaranteed to be non-contiguous. | |
2995 | We may want to use a different hueristic for deciding | |
2996 | whether or not a file is "fragmented". | |
2997 | ||
2998 | * e2fsck.c (show_stats): Print statistics of how many | |
2999 | non-contiguous files are on the system. | |
3000 | ||
3001 | Fri Dec 15 19:19:47 1995 <tytso@rsts-11.mit.edu> | |
3002 | ||
3003 | * badblocks.c (read_bad_blocks_file, test_disk): Fold | |
3004 | functionality of test_disk() (which runs badblocks) into | |
3005 | read_bad_blocks_file(); test_disk() now calls | |
3006 | read_bad_blocks_file() with a NULL bad_blocks_file | |
3007 | argument. | |
3008 | ||
3009 | Mon Nov 20 18:30:10 1995 <tytso@rsts-11.mit.edu> | |
3010 | ||
3011 | * e2fsck.c (check_mount): Use #if defined(__linux__) instead of | |
3012 | #if defined(linux). The latter won't work if we're | |
3013 | compiling -ansi. | |
3014 | ||
297f47a1 TT |
3015 | Mon Oct 30 20:31:17 1995 <tytso@rsts-11.mit.edu> |
3016 | ||
3017 | * e2fsck.c (check_mount): For Linux systems, the check to see if | |
3018 | the root is mounted read-only has to be done for all | |
3019 | filesystems, not just for the root filesystem, due to the | |
3020 | way that some /etc/rc scripts are set up. | |
3021 | ||
50e1e10f TT |
3022 | Thu Oct 26 12:05:30 1995 <tytso@rsts-11.mit.edu> |
3023 | ||
3024 | * Makefile.in (install): Strip programs when they are installed. | |
3025 | (e2fsck): Build e2fsck statically. | |
3026 | ||
3027 | Wed Oct 25 21:18:16 1995 <tytso@rsts-11.mit.edu> | |
3028 | ||
3029 | * util.c (preenhalt): Preenhalt now takes an argument, which is an | |
3030 | ext2fs_filsys; this allows it to set the EXT2_ERROR_FS | |
3031 | flag in the superblock in cases where preenhalt is called. | |
3032 | All calls to preenhalt() were changed to either | |
3033 | preenhalt(fs) or preenhalt(NULL) in a few cases where the | |
3034 | fs pointer was not available. (Most notable, for block | |
3035 | read/write errors.) | |
3036 | ||
3037 | Mon Sep 4 21:41:03 1995 Remy Card <card@bbj> | |
3038 | ||
3039 | * ehandler.c: | |
3040 | util.c: Include <sys/time.h> before <sys/resource.h>. BSD needs it. | |
3041 | ||
3042 | Mon Sep 4 10:14:49 1995 <tytso@rsts-11.mit.edu> | |
3043 | ||
3044 | * e2fsck.c (show_stats): Show statistics about how many inodes | |
3045 | have indirect, doubly indirect, and triply indirect | |
3046 | blocks. Allow up to 8 digits for statistics, instead of | |
3047 | merely 6, so things look pretty for large filesystems. | |
3048 | ||
3049 | * pass1.c (pass1): Keep statistics about indirect, doubly | |
3050 | indirect, and triply indirect blocks. | |
3051 | ||
3052 | * pass1.c (unwind_pass1): Clear the above statistics when unwinding | |
3053 | pass 1. | |
3054 | ||
3055 | Fri Aug 18 15:17:10 1995 Theodore Y. Ts'o <tytso@dcl> | |
3056 | ||
3057 | * util.c, ehandler.c: Move #include of <sys/resource.h> after | |
3058 | #include of "e2fsck.h", since sys/resource.h may depend on | |
3059 | sys/time.h, which is #included in e2fsck.h. | |
3060 | ||
3061 | Thu Aug 17 22:33:37 1995 <tytso@rsts-11.mit.edu> | |
3062 | ||
3063 | * e2fsck.c (check_mount): Use the new ext2fs_check_if_mounted() | |
3064 | function to determine if the device is mounted. | |
3065 | ||
3066 | * e2fsck.c (main): Add better error messages if ext2fs_open() | |
3067 | fails. | |
3068 | ||
3069 | Wed Aug 16 16:25:02 1995 <tytso@rsts-11.mit.edu> | |
3070 | ||
3071 | * pass1.c (check_blocks): If we're clearing a directory, clear | |
3072 | pb.is_dir so we don't do the following check of making | |
3073 | sure the directory size matches; this is pointless, since | |
3074 | we've already cleared the inode. | |
3075 | ||
3076 | Fri Aug 11 09:08:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3077 | ||
3078 | * pass1.c (bad_primary_block): New function, called by | |
3079 | process_bad_block, which explains the facts of life to the | |
3080 | user when a block in the primary superblock or primary | |
3081 | group descriptors is bad. | |
3082 | ||
3083 | * pass2.c (check_dot): Handle the case where the first directory | |
3084 | entry is used, but not ".". | |
3085 | ||
3086 | * pass2.c (check_dotdot): Handle the case where the second directory | |
3087 | entry is used, but is not "..". | |
3088 | ||
3089 | Thu Aug 10 10:05:10 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3090 | ||
3091 | * e2fsck.c (check_super_block): Get the size of the physical | |
3092 | device and if it is smaller than the reported size of the | |
3093 | filesystem, report an error. | |
3094 | ||
3095 | Sat Aug 12 03:39:18 1995 Remy Card <card@bbj> | |
3096 | ||
3097 | * e2fsck.c (check_if_skip): Print the number of allocated files and | |
3098 | blocks on clean filesystems. | |
3099 | ||
3100 | Fri Aug 11 14:15:36 1995 Remy Card <card@bbj> | |
3101 | ||
3102 | * e2fsck.8: Updated date and version number. | |
3103 | ||
3104 | Thu Aug 10 14:26:01 1995 Remy Card <card@bbj> | |
3105 | ||
3106 | * pass1.c (check_blocks): Check that directory size matches *exactly* | |
3107 | the count of allocated blocks. | |
3108 | ||
3109 | Wed Aug 9 21:21:24 1995 Theodore Y. Ts'o <tytso@dcl> | |
3110 | ||
3111 | * pass1b.c (pass1d): Free the shared[] array when we're done with | |
3112 | it to avoid a memory leak. | |
3113 | ||
3114 | * pass1.c (unwind_pass1): Use ext2fs_free_block_bitmap to free the | |
3115 | block_dup_map. | |
3116 | ||
3117 | * pass2.c (process_bad_inode): When clearing the inode, make sure | |
3118 | the pathname is freed, to prevent a memory leak. | |
3119 | ||
3120 | * pass5.c (check_inode_bitmaps): Free free_array and dir_array | |
3121 | when we're finished with them. | |
3122 | (check_block_bitmaps): Free free_array when we're finished | |
3123 | with them. | |
3124 | ||
3125 | * Makefile.in (e2fsck, flushb): Use $(LD) instead of $(CC) when | |
3126 | linking the executable. | |
3127 | ||
3128 | * pass2.c (process_bad_inode): Even on OS's that don't support the | |
3129 | fragment fields, make sure the Linux equivalent fields are | |
3130 | set to zero. If an OS wants to reuse these fields, which | |
3131 | is probably a bad idea (although we may get desperate in | |
3132 | the future) this code will have to be changed. | |
3133 | ||
3134 | * pass1.c (dir_block_cmp): If the block numbers are equal, compare | |
3135 | on the inode field, and then blockcnt field. This is just | |
3136 | to keep the ordering of dir_blocks the same on all | |
3137 | platforms when there are more than on missing directory | |
3138 | blocks, which are indicated directories with holes, which | |
3139 | are indicated with the block number being set to zero. | |
3140 | ||
3141 | Sun Aug 6 15:40:58 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3142 | ||
3143 | * pass1.c (check_blocks, process_block): check_blocks() modified | |
3144 | to call the ext2fs_block_iterate() with BLOCK_FLAG_HOLE if | |
3145 | the inode is a directory. process_block() now checks to | |
3146 | see if a directory has a "hole", or missing block. If so, | |
3147 | this fact is recorded in the directory block list so that | |
3148 | the problem can be resolved in pass #2. | |
3149 | ||
3150 | * pass2.c (allocate_dir_block): Added allocate_dir_block() to | |
3151 | allocate new blocks for directories with "holes". Called | |
3152 | out of check_dir_block if a block in the directory block | |
3153 | list is zero. | |
3154 | ||
3155 | * pass3.c (get_lost_and_found): Move location of free(block) to | |
3156 | prevent possible memory leak. | |
3157 | ||
3158 | Sat Aug 5 12:42:22 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3159 | ||
3160 | * pass2.c (check_dir_block): Use a automatic, fixed-saize array | |
3161 | instead of alloca() --- alloca is not portable! Check to | |
3162 | make sure the filename is not longer than EXT2_NAME_LEN, | |
3163 | and offer to fix it by truncating it, since it should | |
3164 | never happen. | |
3165 | ||
3166 | * e2fsck.c (PRS): Use malloc() instead of alloca() --- alloca() is | |
3167 | not portable!! In any case putenv() in some systems must | |
3168 | take a static character array or malloc()'ed memory; | |
3169 | passing memory allocated using alloca() to putenv() is not | |
3170 | advisable. | |
3171 | ||
3172 | * pass2.c (check_dot, check_dotdot): Use malloc() instead of | |
3173 | alloca() --- alloca() is not portable!!! | |
3174 | ||
3175 | Tue Jul 18 20:04:02 1995 <tytso@rsx-11.mit.edu> | |
3176 | ||
3177 | * pass1b.c (pass1c): | |
3178 | * pass3.c (check_root, get_lost_and_found): | |
3179 | * pass2.c (check_dir_block): Use ext2fs_{read,write}_dir_block | |
3180 | to read/write the directory block. | |
3181 | ||
3182 | Mon Jul 17 04:00:56 1995 <tytso@rsx-11.mit.edu> | |
3183 | ||
3184 | * util.c (ask_yn): Apply patch supplied by Peter A. Zaitcev to | |
3185 | make sure VMIN and VTIME are set correct. | |
3186 | ||
3187 | Fri Jul 14 19:26:29 1995 <tytso@rsx-11.mit.edu> | |
3188 | ||
3189 | * pass1.c (mark_block_used): Change to be an inline function. | |
3190 | Assume that the block validity checks are already done, | |
3191 | and use the fast variant of the bitmap functions. | |
3192 | ||
3193 | Thu Jul 13 08:10:55 1995 <tytso@rsx-11.mit.edu> | |
3194 | ||
3195 | * pass5.c (check_block_bitmaps, check_inode_bitmaps): Check the | |
3196 | bounds of the bitmaps in advance, and then use the fast | |
3197 | variant of e2fs_test_{block,inode}_bitmap. | |
3198 | ||
3199 | * pass1.c (mark_block_used): Use ext2_fast_mark_block_bitmap since | |
3200 | the bounds checking has already been done earlier. | |
3201 | ||
3202 | Wed Jul 12 02:22:46 1995 <tytso@rsx-11.mit.edu> | |
3203 | ||
3204 | * pass1.c (pass1): Allocate and free the block_illegal_map, which | |
3205 | is used for shortcut processing in process_block. | |
3206 | (mark_table_blocks): Initialize block_illegal_map with the | |
3207 | filesystem blocks. | |
3208 | (describe_illegal_block): New helper function that | |
3209 | describes why a block is illegal. | |
3210 | (process_block): Use block_illegal_map as a shortcut | |
3211 | to determine whether a block is bad. Use | |
3212 | describe_illegal_block to print out why the block is illegal. | |
3213 | ||
3214 | Mon Jun 12 19:11:06 1995 Theodore Y. Ts'o (tytso@dcl) | |
3215 | ||
3216 | * flushb.c: Don't include <linux/fs.h> if it doesn't exist. | |
3217 | ||
3218 | * scantest.c: Don't include <linux/fs.h>, <getopt.h>, or | |
3219 | <mntent.h> if they don't exist. (Mostly so that "make | |
3220 | depend" works.) | |
3221 | ||
3222 | * pass1.c, pass1b.c, pass3.c, badblocks.c: Include <errno.h> (if | |
3223 | it exists). | |
3224 | ||
3225 | * e2fsck.c, scantest.c: Don't include <getopt.h> if it doesn't | |
3226 | exist. | |
3227 | ||
3228 | Mon Jun 12 08:37:49 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3229 | ||
3230 | * pass2.c (process_bad_inode, check_for_zero_long, | |
3231 | check_for_zero_char): Change long to u32, and char to u8. | |
3232 | ||
3233 | Sun Jun 11 15:05:57 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> | |
3234 | ||
3235 | * util.c (inode_has_valid_blocks): | |
3236 | * pass2.c (process_bad_inode): | |
3237 | * pass1.c (pass1, check_blocks, pass1_check_directory): Use | |
3238 | LINUX_S_IS* instead of S_IS*. | |
3239 | ||
3240 | * e2fsck.h: Don't #include <sys/stat.h> | |
3241 | ||
3242 | * flushb.c (main): Add #ifdef BLKFLSBUF around ioctl. (Although | |
3243 | this program is pretty much useless if BLKFLSBUF isn't | |
3244 | supported.) | |
3245 | ||
3246 | * e2fsck.c, badblocks.c: Add #include <errno.h>, since errno is | |
3247 | used. | |
3248 | ||
3249 | Thu Jun 8 12:31:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> | |
3250 | ||
3251 | * pass2.c (check_dot, check_dotdot, check_dir_block): Use alloca | |
3252 | to allocate space for file names instead of using fixed size buffers. | |
3253 | (process_bad_inode): Only check inode frag fields if | |
3254 | HAVE_EXT2_FRAGS is defined (by configure). | |
3255 | * pass1.c (pass1): Only check the inode frag fields if | |
3256 | HAVE_EXT2_FRAGS is defined (by configure). | |
3257 | ||
3258 | * e2fsck.c (check_mount): Only check for a mounted filesystem if | |
3259 | HAVE_MNTENT_H is defined (by configure). | |
3260 | (PRS): Use alloca to allocate the new path string, instead of | |
3261 | having a fixed size buffer (which was the wrong size anyway). | |
3262 | (PRS): Only support the -F (flush) option if the BLKFLSBUF ioctl | |
3263 | is defined. | |
3264 | ||
3265 | * e2fsck.h: Only include <linux/fs.h> if HAVE_LINUX_FS_H is | |
3266 | defined (by configure). | |
3267 | ||
3268 | * Makefile.in: Rewritten to conform to GNU coding standards and | |
3269 | support separate compilation directories. | |
3270 | ||
3271 | Thu Apr 6 15:04:36 1995 Remy Card <card@bbj.ibp.fr> | |
3272 | ||
3273 | * pass1.c (pass1): Test the mode in reserved inodes (must be zero). | |
3274 | ||
f3db3566 TT |
3275 | Sat Mar 11 13:12:16 1995 Theodore Y. Ts'o <tytso@localhost> |
3276 | ||
3277 | * pass1.c (unwind_pass1): Clear the file type statistics counter | |
3278 | when pass 1 needs to be restarted from scratch. | |
3279 | ||
3280 | * pass1.c (handle_fs_bad_blocks): Fix bug where bitmap blocks were | |
3281 | being reallocated to blocks in the next block group, | |
3282 | instead of the current block grup. | |
3283 | ||
3284 | * pass1.c (pass1, check_blocks): Set inode_link_info[ino] whenever | |
3285 | inode.i_links_count is set. | |
3286 | ||
3287 | Tue Feb 14 01:38:04 1995 Theodore Y. Ts'o (tytso@rt-11) | |
3288 | ||
3289 | * pass1.c (process_block): Add checks for if the block is | |
3290 | trepassing on a superblock or group descriptor table. | |
3291 | ||
3292 | Sat Dec 31 00:52:11 1994 <tytso@rsx-11.mit.edu> | |
3293 | ||
3294 | * main.c (corrupt_msg): Extend the message which is printed out | |
3295 | when the superblock is corrupt, to include the suggestion | |
3296 | of using the -b option to specify an alternate superblock. | |
3297 | ||
3298 | Thu Nov 24 09:29:58 1994 Theodore Y. Ts'o (tytso@rt-11) | |
3299 | ||
3300 | * badblocks.c (read_bad_blocks_file): If we are adding or | |
3301 | replacing bad blocks in the bad blocks inode, sanity check | |
3302 | the bad block inode first, and clear out any illegal blocks. | |
3303 | ||
3304 | * pass2.c (check_name): Don't bomb out if the attempt to get the | |
3305 | pathname of the containing directory returns an error; the | |
3306 | directory may be too badly damaged to expect that | |
3307 | ext2fs_get_pathname will always succeed. Use "???" if the | |
3308 | pathname can't be obtained (it's only for a printf to the | |
3309 | user anyway). | |
3310 | ||
3311 | The name of the containing directory and the bad filename | |
3312 | were incorrectly interchanged in the user message. Fixed. | |
3313 | ||
3314 | * pass2.c (check_name, check_dir_block): Use a common static | |
3315 | string for the unknown pathname. | |
3316 | ||
3317 | Mon Nov 7 22:30:54 1994 Remy Card <card@bbj> | |
3318 | ||
3319 | * Fixed lots of printf formats to make sure that block and inode | |
3320 | numbers are printed as unsigned integers. | |
3321 | ||
3322 | Mon Oct 24 14:10:46 1994 (tytso@rsx-11) | |
3323 | ||
3324 | * pass5.c (check_block_end): Fix calculation of how the last block | |
3325 | in the block bitmap should be calculated. | |
3326 | ||
3327 | Wed Sep 7 10:01:13 1994 (tytso@rsx-11) | |
3328 | ||
3329 | * pass1b.c (pass1_dupblocks): Fix declaration of dup_inode_map to | |
3330 | be an ext2fs_inode_bitmap, and free it properly. | |
3331 | ||
3332 | * e2fsck.h | |
3333 | * e2fsck.c (main): Folded in Remy Card's changes to add a revision | |
3334 | level to the superblock. | |
3335 | ||
3336 | Wed Aug 17 22:00:20 1994 Remy Card (card@bbj) | |
3337 | ||
3338 | * e2fsck.c (usage): Fixed bogus usage message. | |
3339 | ||
3340 | Wed Aug 17 11:21:45 1994 Theodore Y. Ts'o (tytso@rt-11) | |
3341 | ||
3342 | * pass1.c (process_bad_block): Fixed bug so that blocks in the | |
3343 | backup superblocks and group descriptors are handled gracefully. | |
3344 |