summaryrefslogtreecommitdiff
path: root/e2fsck/e2fsck.c
AgeCommit message (Collapse)AuthorFilesLines
2005-12-31Read in /etc/e2fsck.conf configuration file at startupTheodore Ts'o1-0/+3
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-04-14Use a centrally stored current time for "now" which Theodore Ts'o1-0/+7
can be overridden using the E2FSCK_TIME environment variable, for better reproducibility for regression tests.
2004-02-21e2fsck.c (e2fsck_run): Clear the SETJMP_OK flag when returningTheodore Ts'o1-1/+3
so we don't double longjump into an invalid stack frame. (Thanks to Matthias Andree for providing this fix.)
2003-08-01ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem() Theodore Ts'o1-6/+5
all now take a 'void *' instead of a 'void **' in order to avoid pointer aliasing problems with GCC 3.x.
2003-03-01Update debugfs and e2fsck to use the blkid library.Theodore Ts'o1-7/+3
2002-08-17Overhaul extended attribute handling. Should now be correct withTheodore Ts'o1-0/+1
respect to the latest V2 bestbits ACL code.
2002-07-25Add e2fsck -D option which optimizes/compresses directories. Theodore Ts'o1-0/+2
General cleanup of rehash code. (Fixed a few bugs, reformatted code to make it more maintainable, etc.)
2002-07-20Add support to e2fsck to reindex directories to use hash trees.Theodore Ts'o1-0/+4
2002-06-25Add initial support for htree directories.Theodore Ts'o1-0/+3
2001-07-29e2fsck.c (e2fsck_reset_context): Fix bug; only close the io channel ifTheodore Ts'o1-1/+1
it is *different* from the filesystem io channel
2001-07-23Add support for use of an external journal (so long as the externalTheodore Ts'o1-0/+5
journal only has one filesystem).
2001-07-02Add initial support for extended attribute blocksTheodore Ts'o1-0/+12
1999-11-08ChangeLog, e2fsck.c, pass4.c, problem.h, unix.c:Theodore Ts'o1-1/+1
pass4.c (e2fsck_pass4): Clear inode_imagic_map after freeing it, to prevent it from getting freed twice. unix.c (main): Close the filesystem before freeing the context, so that in the event of a free()-related segmentation violation, the filesystem is properly closed and written out. e2fsck.c (e2fsck_reset_context): When freeing ctx->inode_reg_map, we weren't zero'ing ctx->inode_reg_map, which could cause a segfault later on in the e2fsck run. problem.h (PR_2_SPLIT_DOT): Fix excess zero in problem code (now matches the standard convention).
1999-10-21Many files:Theodore Ts'o1-0/+8
pass4.c (e2fsck_pass4): If an inode is set in the inode_imagic_map bitmap, don't check to see if it is disconnected from the inode tree (because it almost certainly will be). Free inode_imagic_map at the end of pass 4. pass2.c (check_dir_block, check_filetype): If the FILETYPE feature is set, check the directory entry's filetype information field, and fix/set it if necessary. (e2fsck_pass2): Free the inode_reg_map bitmap at the end of pass 2. pass1.c (e2fsck_pass1, alloc_imagic_map): Allocate and fill in information for inode_reg_map and inode_imagic_map, which indicates which inodes are regular files and AFS inodes, respectively. Since only the master superblock is written during a restart, force that superblock to be used after a restart; otherwise changes to the block group descriptors end up getting ignored. problem.c, problemP.h: If e2fsck is run -n, make def_yn variable be 0 for "no". Add support for a new flag, PR_NO_NOMSG, which supresses the problem message if e2fsck is run with the -n option. problem.c, problem.h (PR_2_SET_FILETYPE, PR_2_BAD_FILETYPE): Add new problem codes. message.c (expand_dirent_expression): Add support for %dt which prints the dirent type information. e2fsck.c (e2fsck_reset_context): Free new bitmaps (inode_reg_map and inode_imagic_map). e2fsck.h (e2fsck_t): Add new inode_reg_map and inode_magic_map to the context structure. ChangeLog, nt_io.c: nt_io.c: New file which supports I/O under Windows NT. ChangeLog, gen_uuid_nt.c: gen_uuid_nt.c: New file which creates a UUID under Windows NT. Many files: Add support for non-Unix compiles
1998-11-14ChangeLog, mke2fs.c, tune2fs.8.in:Theodore Ts'o1-1/+1
tune2fs.8.in: Fix minor display bug in the nroff. mke2fs.c (show_stats, write_inode_tables): Use the log10 function to calculate the display of block numbers so that things look nice on an 80 character display. mke2fs.c (usage): Add the sparse-super-flag to the usage message. ChangeLog, e2fsck.c, pass1.c, pass2.c, problem.c, problem.h, unix.c: unix.c (main): Move ext2fs_close() after e2fsck_free_context() since e2fsck_free_context may reference data in ctx->fs. e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL before checking ctx->fs->dblist. pass1.c (e2fsck_pass1): Use the device check subroutine on FIFO's and Socket's, so that we catch bogus immutable inodes. pass2.c (process_bad_inode): Process bad socket and fifo's. problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and PR_2_BAD_SOCKET.
1998-08-01ChangeLog, e2fsck.c, pass2.c, pass3.c, unix.c:Theodore Ts'o1-0/+2
pass2.c (e2fsck_pass2): Fix the progress accounting so that we get to 100%. pass3.c (e2fsck_pass3): Change progress accounting to be consistent with the other e2fsck passes. e2fsck.c (e2fsck_run): At the end of each pass, call the progress function with the pass number set to zero. unix.c (e2fsck_update_progress): If the pass number is zero, ignore the call, since that indicates that we just want to deallocate any progress structures. emptydir.c: Commit partially done file. ChangeLog, badblocks.c: badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment than 10 blocks when we need to expand the size of the badblocks list.
1998-03-24Many files:Theodore Ts'o1-0/+1
unix.c: Fix bug in check of feature set, to make sure we can really fix this filesystem. problem.h: Make blkcount type to be of type blkcnt_t. Make the num field be a 64 bit type. Add the problem code PR_1_FEATURE_LARGE_FILES problem.c: Add table entry for the problem code PR_1_FEATURE_LARGE_FILES. pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only a problem for directory inodes. (Since it is also i_size_high now.) If there are no large_files, then clear the LARGE_FLAG feature flag. If there are large_files, but the LARGE_FLAG feature flag is not set, complain and offer to fix it. (check_blocks): Add support to deal with non-directory inodes that have i_size_high set (i.e., large_files). Don't give an error if a directory has preallocated blocks, to support the DIR_PREALLOC feature. (process_block, process_bad_block): The blockcnt variable is a type of blkcnt_t, for conversion to the new block_iterate2. pass2.c (process_bad_inode): A non-zero i_dir_acl field is only a problem for directory inodes. (Since it is also i_size_high now.) message.c (expand_inode_expression): Print a 64-bits of the inode size for non-directory inodes. (Directory inodes can only use a 32-bit directory acl size, since i_size_high is shared with i_dir_acl.) Add sanity check so that trying to print out the directory acl on a non-directory inode will print zero. (expand_percent_expression): %B and %N, which print pctx->blkcount and pctx->num, can now be 64 bit variables. Print them using the "%lld" format if EXT2_NO_64_TYPE is not defined. e2fsck.h: Add the large_flagsfield to the e2fsck context. e2fsck.c (e2fsck_reset_context): Clear the large_flags field. ChangeLog, expect.1: f_messy_inode: Modify test to deal with changes to support 64-bit size files. (/MAKEDEV had i_dir_acl, now i_size_high, set.)
1998-02-27ChangeLog, e2fsck.c, e2fsck.h, pass1.c:Theodore Ts'o1-4/+6
e2fsck.c (e2fsck_run): Since E2F_FLAG_SIGNAL_MASK doesn't include EXT2_FLAG_RESTART anymore, we need to adjust this routine so that it *does* return in the case of it seeing EXT2_FLAG_RESTART. pass1.c (e2fsck_pass1): ext2_get_next_inode() may call the group done callback function, which may set context abort flags. So we need to test the context abort flags after we call ext2_get_next_inode(). (process_inodes): If we abort due out of process_inodes, do a clean exit by breaking out of the for loop instead of just returning. e2fsck.h (E2F_FLAG_SIGNAL_MASK): EXT2_FLAG_RESTART shouldn't be considered a SIGNAL mask (i.e., requiring an immediate abort of processing to restart). FLAG_RESTART just means that we want to restart once pass 1 is complete.
1998-02-01ChangeLog, dirinfo.c, e2fsck.c, e2fsck.h, super.c:Theodore Ts'o1-2/+0
dirinfo.c, e2fsck.c: Don't include com_err.h; it isn't needed. e2fsck.h: Include <time.h> since it is needed super.c: If EXT2_SKIP_UUID is defined, then skip the UUID processing.
1997-11-03Many files:Theodore Ts'o1-9/+51
Change ext2fs_read_inode, ext2fs_write_inode to take the e2fsck context as their first argument. Change dir_info.c routines to take an e2fsck_context, renamed them to start with e2fsck_ to avoid namespace issues, and changed them to store the directory information inside the e2fsck context. Added e2fsck_run() which calls all of the e2fsck passes in the correct order, and which handles the return of abort codes. Added abort processing, both via setjmp/longjmp and via flags in the e2fsck context. Use a flag in the e2fsck context instead of the restart_e2fsck global variable. Change uses of free and malloc to ext2fs_free_mem and ext2fs_get_mem.
1997-10-03Many files:Theodore Ts'o1-806/+82
pass*.c, super.c: Massive changes to avoid using printf and com_err routines. All diagnostic messages are now routed through the fix_problem interface. pass2.c (check_dir_block): Check for duplicate '.' and '..' entries. problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and PR_2_DUP_DOT_DOT. problem.c: Added new problem codes for some of the superblock corruption checks, and for the pass header messages. ("Pass 1: xxxxx") util.c (print_resource_track): Now takes a description argument. super.c, unix.c, e2fsck.c: New files to separate out the operating-specific operations out from e2fsck.c. e2fsck.c now contains the global e2fsck context management routines, and super.c contains the "pass 0" initial validation of the superblock and global block group descriptors. pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate (nearly) all global variables and moved them to the e2fsck context structure. problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT, PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS, PR_0_BLOCKS_PER_GROUP, PR_0_FIRST_DATA_BLOCK expect.1, expect.2: Updated tests to align with e2fsck problem.c changes.
1997-08-10ChangeLog, error_message.c, error_table.h, et_name.c:Theodore Ts'o1-1/+3
error_table.h: et_name.c (error_table_name): error_message.c (error_message.c): Make code be 16-bit safe. ChangeLog, e2fsck.c: e2fsck.c (check_mount): Add stronger warning message about the perils of running e2fsck on a mounted filesystem.
1997-04-29Many files:Theodore Ts'o1-33/+58
Checked in e2fsprogs 1.08.
1997-04-29Many files:Theodore Ts'o1-41/+92
Checked in e2fsprogs-1.07
1997-04-29Many files:Theodore Ts'o1-12/+24
Checked in e2fsprogs 1.06
1997-04-29Many files:Theodore Ts'o1-26/+66
Checked in e2fsprogs 1.05
1997-04-29Many files:Theodore Ts'o1-0/+21
Checked in e2fsprogs 1.04.
1997-04-26Many files:Theodore Ts'o1-5/+12
Checkin of e2fsprogs 1.03.
1997-04-26Many files:Theodore Ts'o1-3/+7
Checkin of e2fsprogs 1.02.
1997-04-26Many files:Theodore Ts'o1-4/+10
Checked in e2fsprogs 1.01.
1997-04-26Many files:Theodore Ts'o1-76/+140
Checked in e2fsprogs 0.5c
1997-04-26Many files:Theodore Ts'o1-14/+150
Checkin of e2fsprogs 0.5b
1997-04-26Many files:Theodore Ts'o1-0/+481
Checkin of e2fsprogs 0.5b