X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=e2fsck%2FChangeLog;h=bf114f3b36185c2c9970898cc13095ae9f751e6a;hb=109624a133f147b13903f59d585b20446a3c538f;hp=2b4b7c5c35649b10e854daa0f22db896f863282c;hpb=e904406eb55dd5116b9a95690714b4c9abf786af;p=tools%2Fe2fsprogs.git diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index 2b4b7c5..bf114f3 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -1,6 +1,577 @@ +2001-08-30 Theodore Tso + + * Release of E2fsprogs 1.24 + +2001-08-30 Theodore Tso + + * pass1.c (e2fsck_pass1): For EXT2_RESIZE_INO, allow its i_mode to + either be zero or a regular file (for compatibility with + Andreas's on-line resizing programs). + +2001-08-27 Theodore Tso + + * unix.c (main): Remove EXT2FS_VERSION from the version display, + since it only confuses people. + + * pass1.c (strnlen): Provide strnlen if libc doesn't. + +2001-08-15 Theodore Tso + + * Release of E2fsprogs 1.23 + +2001-08-13 Theodore Tso + + * super.c (release_orphan_inodes): If the filesystem contains + errors, don't run the orphan * list, since the orphan list + can't be trusted. + + * pass1.c (check_size): Fix logic in check_size; the previous code + only offered to clear the inode size fields if both size + and i_size_high were zero. + (e2fsck_pass1_check_device_inode): If i_blocks is + non-zero, then assume that the device/socket/fifo inode + is bogus. + +2001-08-09 Theodore Tso + + * pass1.c, pass2.c, problem.c, problem.h: Fix bug introduced by + Andreas's symlink code; check_blocks() was unconditionally + testing inode_bad_map without checking to see if it + existed first. Fixed problem a different way; we now no + longer check inode_bad_map at all, since the file might + not get deleted in pass 2 anyway. We move the large file + feature reconciliation code to to e2fsck_pass2(), and in + deallocate_inode() in pass2.c, we decrement the large + files counter if we're about to delete a large file. + + * unix.c (show_stats): Print the number of large files in verbose + mode. + +2001-08-07 Theodore Tso + + * journal.c (recover_ext3_journal): If s_errno is set in the + journal superblock, set the EXT2_ERROR_FS flag in the + filesystem superblock after the journal is run. + +2001-08-04 Andreas Dilger + + * message.c: Change comments for %D and %d expansion in e2fsck + problem codes. It was not consistent which was for dirent + expansion, and which was for directory number expansion. + + * problem.c (PR_2_FINAL_RECLEN, PR_2_BAD_FILETYPE): Fix problem + codes which got caught by the confusion between %D and %d. + +2001-08-04 Theodore Tso + + * problem.c (PR_2_SYMLINK_SIZE): Change description to make it + more clear (and remove %s expansion). Also add missing + periods to the end of a number of problem descriptions. + + * pass2.c (e2fsck_process_bad_inode): Remove unneeded problem + context string set now that the problem description for + PR_2_SYMLINK_SIZE has been changed. + + * pass1.c (e2fsck_pass1_check_symlink): Consolidate some checks, + and check the validity of the symlink block here (so that + we detect this case here instead of later). Also use + sizeof(inode->i_block) instead EXT2_LINK_DIR. + +2001-07-30 Theodore Tso + + * unix.c (check_mount): Remove the code which tested for the root + filesystem being mounted read-only, and depend on the + results flags from ext2fs_check_if_mounted. + +2001-07-29 Theodore Tso + + * unix.c (check_if_skip): Free the e2fsck context structure on a + normal clean filesystem exit, to make it easier to find + real memory leaks. + (PRS): Only update the path to include /sbin at the + beginning if the -c option is given, again to make it + easier to find memory leaks. + (main): Move the final print_resource_track call after the + filesystem and the context are freed. + + * journal.c (e2fsck_journal_init_dev): Avoid memory leak if we + need to search for the journal device. + (e2fsck_journal_release): Free the journal IO channel when + we release the journal handle, to avoid a memory leak. + + * e2fsck.c (e2fsck_reset_context): Fix bug; only close the io + channel if it is *different* from the filesystem io + channel. + +2001-07-27 Theodore Tso + + * problem.c (PR_1_SET_IMMUTABLE): Clarify problem message. + + * pass1.c (e2fsck_pass1): Check for symlinks that have the + immutable flag set (and offer to clear them). + +2001-07-26 Theodore Tso + + * pass1.c (e2fsck_pass1): Free ctx->block_ea_map at the end of + pass 1. + +2001-07-25 Theodore Tso + + * pass1.c (check_ext_attr): Skip zero-length EA entries. + + * problem.c: PR_1_EA_ALLOC_COLLISION shouldn't abort, but should + prompt to clear the EA block. + +2001-07-22 Theodore Tso + + * journal.c (ll_rw_block): Use ctx->journal_io instead of the + filesystem's io_channel. + (e2fsck_journal_init_dev): New function which supports + initialization of the external journal. + (e2fsck_get_journal): Remove code which flagged an error + if the superblock reported the use of an external journal. + (ext3_journal_via_mount): Remove unsued, #ifdefed out function. + + * problem.c, problem.h: Removed error codes no longer used + (PR_0_JOURNAL_UNSUPP_DEV, PR_0_JOURNAL_BAD_DEV, + PR_0_JOURNAL_UNSUPP_UUID) and replace them with new error + codes related with failures in loading the external + journal (PR_0_JOURNAL_UNSUPP_MULTIFS, + PR_0_CANT_FIND_JOURNAL, PR_0_EXT_JOURNAL_BAD_SUPER). + Also changed the text assocated with PR_0_JOURNAL_BAD_UUID + to reflect the case where the external journal isn't + correct for this filesystem. + + * unix.c (PRS), e2fsck.8.in: Add new option -j which allows + the user to specify the pathname to find the external journal. + + * e2fsck.c (e2fsck_reset_context): Close journal_io if it isn't + the same as the filesystem io_channel. + + * e2fsck.h: Add new fields (journal_io and journal_name) in the + context structure to support external journals. + +2001-07-20 Theodore Tso + + * unix.c (main): Add an explicit warning when the filesystem is + left not completely fixed when e2fsck exits. (Addresses + Debian bug #104502.) + +2001-07-19 Theodore Tso + + * pass1.c (check_ext_attr): The entire EA block is now checked to + make sure that parts of the EA block aren't being used for + multiple purposes. + + * Makefile.in e2fsck.h, region.c: New file which is used to detect + collisions in extended attribute block. + + * problem.h, problem.c (PR_1_EA_MULTI_BLOCK, PR_1_EA_ALLOC_REGION, + PR_1_EA_ALLOC_COLLISION, PR_1_EA_BAD_NAME, + PR_1_EA_BAD_VALUE): Add new problem codes. + +2001-07-10 Theodore Tso + + * journal.c (e2fsck_run_ext3_journal): Only call ext3_flush() if + the superblock is dirty. + +2001-07-07 Theodore Tso + + * pass1b.c (pass1b, process_pass1b_block): Change the num_bad + field calculation so that it only counts EA block entries + as a single multiply claimed block (since once we clone + the EA blocks for one inode, we fix the problem for all of + the other inodes). Also, I moved the num_bad calculation + from process_pass1b_block to the end of pass1b. This + fixes a *significant* performance bug in pass1b which hit + people who had to had a lot of multiply claimed blocks. + (Can you say O(n**3) boys and girls? I knew you could... + Fortunately, this case didn't happen that much in actual + practice.) + + * pass1.c (e2fsck_pass1): Defer inodes which have an extended + attribute block for later processing to avoid extra seeks + across the disk. + (process_inode_cmp): If there is no indirect block, sort + by the extended attribute (i_file_acl) block. + + * pass1b.c (clone_file_block): Fix bugs when cloning extended + attribute blocks. Moved free of block_buf to after the + code which clones the extattr block, and fixed logic for + changing pointers to the extended attribute field in the + inodes which were affected. + (decrement_badcount): New function which is used whenever + we need to decrement the number of files which claim a + particular bad block. Fixed bug where delete_file wasn't + checking check_if_fs_block() before clearing the entry in + block_dup_map. This could cause a block which was claimed + by multiple files as well as the filesystem metadata to + not be completely fixed. + + * pass1.c (adjust_extattr_refcount): Add new function which + adjusts the reference counts of extended attribute blocks + if needed, both up and down. + (e2fsck_pass1): If the refcount or refcount_extra + structure are present, call adjust_extattr_refcount(), + and free it afterwards. + + * problem.h, problem.c (PR_1_EXTATTR_READ_ABORT, + PR_1_EXTATTR_REFCOUNT, PR_1_EXTATTR_WRITE): Add new + problem codes. + +2001-07-02 Theodore Tso + + * pass1.c (e2fsck_pass1, check_ext_attr, check_blocks): Add + initial support for scanning extended attribute blocks. + + * e2fsck.c (e2fsck_reset_context): free extended attribute + refcount structure. + + * e2fsck.h: Add new fields for accounting for the extended + attribute blocks. + + * Makefile.in, ea_refcount.c, e2fsck.h: Add new file which + implements a reference count abstraction. + + * problem.c, problem.h: Add new problem codes PR_1_ALLOCATE_REFCOUNT, + PR_1_READ_EA_BLOCK, PR_1_BAD_EA_BLOCK, PR_2_FILE_ACL_BAD + + * message.c: Add "@a" as an abbreviation for "extended attribute" + + * pass1b.c (clone_file): Add code which handles cloning an + extended attribute block. + + * pass1b.c (delete_file): + * pass2.c (deallocate_inode): If the inode contains an extended + attribute block in the file_acl field, clear it and + deallocate the block. + +2001-06-28 Theodore Tso + + * pass2.c (e2fsck_process_bad_inode): Deal with inodes which are + marked bad because of an invalid file_acl (either because + EXT2_FEATURE_COMPAT_EXT_ATTR is not set, or because the + block number in file_acl is bad. + +2001-06-29 Theodore Tso + + * unix.c (show_stats): Use long long to calculate the percentage + of the number of blocks in use in the filesystem. + +2001-06-23 Theodore Tso + + * Release of E2fsprogs 1.22 + +2001-06-22 Theodore Tso + + * flushb.c: Use platform independent method of defining the + BLKFLSBUF ioctl. Also include sys/mount.h since on newer + platforms BLKFLSBUF is defined there. + +2001-06-19 Theodore Tso + + * super.c (release_inode_blocks): Don't try to release the blocks + if the orphaned inode is a device file, symlink, or some + other kind of special file that doesn't have a block list. + +2001-06-15 Theodore Tso + + * Release of E2fsprogs 1.21 + +2001-06-13 Theodore Tso + + * unix.c (check_if_skip): Adapted patch from Andreas Dilger which + prints the number of mounts or days elapsed since the last + check when e2fsck is forced to check an otherwise clean + filesystem. + +2001-06-12 Theodore Tso + + * badblocks.c: Stop using the compatibility badblocks function, + and use the ext2fs_badblocks_* functions instead. + +2001-06-11 Theodore Tso + + * unix.c (PRS): Fix bug introduced in 1.20 which broke the -F + flag. + + * Makefile.in: Add message.c and swapfs.c to the list of source + files to build the make depend. + + * swapfs.c, unix.c: Only support the -s and -S options to e2fsck + if ENABLE_SWAPFS is defined. + +2001-06-08 Theodore Tso + + * recover.c, revoke.c: Synchronize with ext3 0.7a + +2001-06-02 Theodore Tso + + * recovery.c (scan_revoke_records): Fix bug in recovery code; + missing byte order conversion. + + * pass1.c (mark_inode_bad): Replace alloc_bad_map with a function + which sets the bit in the bad inode bitmap. + (e2fsck_pass1): Check for fast symlinks with an invalid + size, and set the bad inode map in that case. + (check_size): Check i_size_high for special files and + prompt to clear it along with i_size if non-zero. + + * pass2.c (e2fsck_process_bad_inode): Check for fast symlinks with + an invalid size and prompt the user if the inode should be + cleared. + + * problem.h, problem.c (PR_2_SYMLINK_SIZE): Added new problem code. + +2001-06-01 Theodore Tso + + * problem.c, problem.h: Change PR_0_JOURNAL_UNSUPP_INCOMPAT and + PR_0_JOURNAL_UNSUPP_ROCOMPAT so they aren't fatal errors, + but prompt to see if the user should abort. Removed the + PR_0_JOURNAL_RESET_COMPAT problem code. + + * journal.c (e2fsck_journal_load): If there are incompatible + journal flags, just return an error code. + (e2fsck_check_ext3_journal): If e2fsck_journal_load + returns an error code indicating that there are + incompatible journal flag, check to see if we should + abort, and then offer to clear the journal. + (Addresses Debian bug #98527.) + + * Makefile.in: Move include/asm/types.h.in to + lib/ext2fs/ext2_types.h.in. + +2001-06-01 Theodore Tso + + * pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode, + pass1_check_directory): Add a safety check to make sure + ctx->stashed_inode is non-zero. + + * pass1b.c (pass1b): Use e2fsck_use_inode_shortcuts() to disable + the inode shortcut processing, instead of manually + clearing only half of the function pointers that needed to + be NULL'ed out. This caused nasty bugs if the last inode + in the filesystem needed dup block processing. + + * pass1b.c (clone_file_block): When cloning a directory's metadata + block, don't try to update the directory block list + database, since indirect blocks aren't stored in the + database and the resulting error will abort the file clone + operation. + +2001-05-25 Theodore Tso + + * Release of E2fsprogs 1.20 + +2001-05-25 Theodore Tso + + * journal.c (e2fsck_journal_reset_super): Remove extraneous line + +2001-05-23 Theodore Tso + + * journal.c (e2fsck_journal_reset_super): Fix bug; the reset + journal wasn't getting written out to disk since the dirty + bit wasn't being set on the buffer. + (e2fsck_journal_load): Don't print an error message if the + journal version number is wrong; just return a error code + reflecting this fact. If the block type in the journal + superblcok is obviously not a version number, report the + journal is corrupted. + (e2fsck_check_ext3_journal): On an unsupported journal + version, prompt to abort by default, but then offer a + chance to clear the journal as corrupt. + + * problem.c, problem.h (PR_0_JOURNAL_UNSUPP_VERSION): Added new + problem code. + +2001-05-14 Theodore Tso + + * pass1.c: Treat inodes with a low dtime (that were from a + corrupted orphan list) specially. + + * problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and + PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, + PR_LATCH_LOW_DTIME. + + * problemP.h: Expand the size of the problem flag to be an int + instead of a short. Expand space in the flag word which + is reserved for problem latch flags from 3 bits to 8 bits. + + * e2fsck.h, scantest.c: Change location of ext2_fs.h to be + ext2fs/ext2_fs.h + + * super.c (check_super_block): Be more strict on checking + s_r_blocks_count superblock field. + +2001-05-13 Theodore Tso + + * problem.c, problem.h (PR_0_JOURNAL_UNSUPP_ROCOMPAT, + PR_0_JOURNAL_UNSUPP_INCOMPAT, PR_0_JOURNAL_RESET_COMPAT): + New problem codes. + + * journal.c (e2fsck_journal_load): Use a problem code to + report unsupported feature flags. There is code to + clear unsupported flags, but since this is dangerous, + it's not allowed in the problem code table. + +2001-05-11 Andreas Dilger + + * journal.c (e2fsck_journal_reset_super): initialize the journal + sequence number to a random value to avoid recovering + bad transactions from a corrupt journal. + +2001-05-13 Theodore Tso + + * journal.c: Code cleanup; initialize journal_enable_debug using + an initializer. + +2001-05-12 Theodore Tso + + * unix.c (PRS): Skip validation of -C's file descriptor if it is + zero, since that is special case. + +2001-05-09 Theodore Tso + + * super.c (release_orphan_inodes): Add gettext quoting around + "Truncating" and "Clearing" for i18n. + +2001-05-05 Theodore Tso + + * util.c (fatal_error): Use the correct magic number when checking + the magic number for the io_channel data structure. Also + remove extraneous call to io_channel_flush() that was left + over from an editing session. + + * pass2.c (check_dir_block): Ignore EXT2_ET_DIR_CORRUPTED errors + from ext2fs_read_dir_block(). + +2001-05-01 Theodore Tso + + * unix.c (PRS): Validate the completion information file + descriptor so that the completion bar won't get + accidentally written onto the disk. + + * e2fsck.8.in: Add explanation that you can use mke2fs -n -b + blocksize to printout alternate superblock locations. + +2001-04-26 Theodore Tso + + * unix.c (check_if_skip): If the max_mount_count is zero, treat it + as having no count set. + +2001-04-16 Theodore Tso + + * super.c (check_super_block): Fix bad calculation of + inodes_per_block, and tighten min/max checks to be a bit + more paranoid. Thanks to Andreas Dilger for pointing out + this bug. + +2001-03-29 Theodore Tso + + * journal.c (mark_buffer_uptodate): Add emulation of kernel + function mark_buffer_uptodate. + + * recovery.c, revoke.c: Synchronize with 0.6b ext3 files. + +2001-02-12 Theodore Tso + + * journal.c (e2fsck_run_ext3_journal): Force a flush of the + filesystem and io_channel before replaying the journal. + +2001-01-17 Theodore Ts'o + + * pass1.c (check_blocks): Fix large file checking code so that + files > 2GB are considered large files, and restrict + directories from being > 2GB. + +2001-01-12 Theodore Ts'o + + * journal.c (e2fsck_journal_fix_unsupported_super): Remove unused + function. Add FIXME notes to e2fsck_get_journal(), from + Andreas Dilger. + + * pass1.c (e2fsck_pass1): Cap the maximum legal size of a file by + the limit caused by the fact that i_blocks is in 512 byte + units, and that the Linux buffer cache also fundamentally + assumes 512 byte sectors. + Make sure that the journal inode is a regular file, and + when clearing an unused journal inode, make sure the + icount db is updated. + + * problem.c, problem.h (PR_1_JOURNAL_BAD_MODE): Add new problem code. + + * problem.c: For PR_1_RESERVED_BAD_MODE, print a description of + the reserved inode. In PR_0_JOURNAL_HAS_JOURNAL, prompt + to clear the journal, rather than deleting it (which is + more accurate). (From Andreas Dilger.) + + * journal.c: Make sure all functions which return an error code + use the errcode_t return type, and not "int" + (e2fsck_journal_release): Add new parameter, "drop", + which is used when we just want to deallocate the journal + without trying to write out any changes. + (mark_buffer_clean): New function + (e2fsck_check_ext3_journal): If we fail loading the + journal, make sure we free all memory associated with it. + (recover_ext3_journal): If we fail to load the journal or + initialize the revoke data structures, make sure we free all + memory associated with the journal. + + * message.c (special_inode_name): Add more special inode names + (From Andreas Dilger) + + * util.c (fatal_error): Check to make sure the io_manager data + structure is sane before trying to flush the io_channel. + (From Andreas Dilger) + + * mtrace.h, super.c, pass2.c: Minor whitespace cleanups, from + Andreas Dilger. + + * journal.c (e2fsck_journal_fix_bad_inode): Set pctx->ino to the + bad journal number. + + * problem.c (PR_0_JOURNAL_BAD_INODE): Use pctx->ino instead of + pctx->num when printing the bad journal inode number. + +2001-01-11 + + * pass1.c (process_block): Remove dead code which was never + getting executed. + + * iscan.c, unix.c, e2fsck.h: Don't use NOARGS, and use + ext2fs_sync_device() instead of using BLKFLSBUF. + + * flushb.c: Don't use NOARGS anymore; everything is STDC these days. + + * dirinfo.c, e2fsck.h, emptydir.c, iscan.c, jfs_user.h, journal.c, + message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c, + pass5.c, problem.h, scantest.c, super.c, swapfs.c: Change + ino_t to ext2_ino_t. + +2001-01-09 + + * problem.c: Fix another broken @F vs @f problem. + +2001-01-06 + + * journal.c, pass1.c, pass1b.c, pass3.c, recovery.c, revoke.c, + super.c, unix.c, util.c: Fix random gcc -Wall complaints. + + * jfs_user.h: Use more sophisticated inline handling to allow + building with --enable-gcc-wall + 2001-01-03 - * message.c: Add @j abbreviation for journal, and @d abbreviation + * pass1.c (e2fsck_pass1): Moved journal inode handling out to its + own block; if the journal inode is not in use, and it + contains data, offer to clear it. + + * problem.h, problem.c (PR1_JOURNAL_INODE_NOT_CLEAR): Add new + problem code. + + * problem.c: Modified problem table to use a new abbreviations. + + * message.c: Add @j abbreviation for journal, and @v abbreviation for device. * jfs_user.h: Moved contents of jfs_e2fsck.h into jfs_user.h.