Commit Graph

836 Commits (67052a8aeeca8cd80d1dd33c2792f917573accc8)

Author SHA1 Message Date
Andreas Dilger 67052a8aee Add extra checks for bad symlinks, including zero length symlinks,
too long i_size for slow and fast symlinks, i_size_high set, multiple
blocks for slow symlinks.
2001-08-04 00:51:18 -06:00
Andreas Dilger 0d9ef644d9 Add several tests for bad symlinks, including immutable flags, zero
i_size, too large i_size, and i_size_high set.
2001-08-04 00:30:07 -06:00
Theodore Ts'o 194686bbae tune2fs.c (update_feature_set, remove_journal_inode): If
removing an in-filesystem journal, clear out the journal
	inode and update the filesystem accounting structures so
	we don't have to run e2fsck to clean up after ourselves
2001-07-31 12:03:23 -04:00
Theodore Ts'o de49f015a4 tune2fs.c (update_feature_set): Don't require a forced fsck if
we're removing an external journal from a filesystem.
2001-07-30 16:31:30 -04:00
Theodore Ts'o 83e6ac84c7 unix.c (check_mount): Remove the code in e2fsck which tested for the
root filesystem being mounted read-only, and depend on the
	results flags from ext2fs_check_if_mounted.
2001-07-30 16:29:52 -04:00
Theodore Ts'o 0628ae3948 unix.c (main): Move the final print_resource_track call after
the filesystem and context handle are closed
2001-07-29 12:26:46 -04:00
Theodore Ts'o 6d222f3217 Fix memory leaks in e2fsck's journal.c, and remove some cases
which look like memory leaks in unix.c so we can more easily find
the true memory leaks.
2001-07-29 12:06:58 -04:00
Theodore Ts'o 3751721fbb finddev.c (scan_dir): Fix memory leak; we weren't calling
closedir() when exiting the function in all cases.
2001-07-29 12:01:09 -04:00
Theodore Ts'o 1e16526bd9 e2fsck.c (e2fsck_reset_context): Fix bug; only close the io channel if
it is *different* from the filesystem io channel
2001-07-29 11:48:10 -04:00
Theodore Ts'o 36be564dc2 ADD TAG: E2FSPROGS-1_23-WIP-0727 2001-07-27 23:33:40 -04:00
Theodore Ts'o 4e40f6c348 mkjournal.c (ext2fs_create_journal_superblock): Set the first block
usable in the journal for external journals to be 2 or 3,
        depending on the blocksize, so that the existing kernel code
        does the right thing.
2001-07-27 23:33:40 -04:00
Theodore Ts'o 737f066a34 ADD TAG: E2FSPROGS-1_23-WIP-0727 2001-07-27 22:40:09 -04:00
Theodore Ts'o a092c563f7 Update problem message printed when special files have the immutable
flag set.  Update the f_filetype test case.
2001-07-27 22:40:09 -04:00
Theodore Ts'o 46b997cde3 ADD TAG: E2FSPROGS-1_23-WIP-0727 2001-07-27 22:20:06 -04:00
Theodore Ts'o bf16d1065a Update for 27-Jul-2001 WIP release. 2001-07-27 22:20:06 -04:00
Theodore Ts'o 343fa65e9f getsize.c (ext2fs_get_device_size): Add support for the
BLKGETSIZE64 ioctl.  (Ioctl defined by unofficial patches
	from Ben LaHaise, but it's likely this interface won't
	change.)
2001-07-27 22:15:06 -04:00
Theodore Ts'o fd77b2c78a pass1.c (e2fsck_pass1): Check for symlinks that have the
immutable flag set (and offer to clear them).
2001-07-27 22:10:01 -04:00
Theodore Ts'o d0952b44bd subst.conf.in: Enable documentation of the external journal
functionality in mke2fs, e2fsck, and tune2fs.
2001-07-27 22:02:47 -04:00
Theodore Ts'o 77dc4eb04c mke2fs.c (PRS): If the blocksize is not specified, and the journal
device is specified, user it to determine the blocksize
	of the filesystem.
2001-07-27 22:00:18 -04:00
Theodore Ts'o f35e6440ef mkjournal.c (ext2fs_add_journal_device): Use the correct block
when writing the journal superblock, too.  (Oops! Needed
	to make 1k filesystems with external journal to work.)
2001-07-27 15:35:21 -04:00
Theodore Ts'o 36131b37d7 mkjournal.c (ext2fs_add_journal_device): Use the correct block
to find the journal superblock if the blocksize is 1024.
2001-07-26 23:44:39 -04:00
Theodore Ts'o 24ceb248ab pass1.c (e2fsck_pass1): Free ctx->block_ea_map at the end of pass 1.
This avoids increasing the memory footprint of e2fsck by 10%!
2001-07-26 09:02:56 -04:00
Theodore Ts'o 14fe1c3314 Apply fixes reported by Andreas Gruenbacher:
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-25 19:48:24 -04:00
Theodore Ts'o 029326d6d1 ADD TAG: E2FSPROGS-1_23-WIP-0722 2001-07-23 00:23:52 -04:00
Theodore Ts'o 6c0a041776 Update for 1.23-WIP-0722 release. 2001-07-23 00:23:52 -04:00
Theodore Ts'o adee8d75db Add support for use of an external journal (so long as the external
journal only has one filesystem).
2001-07-23 00:17:49 -04:00
Theodore Ts'o b170814bb0 ADD TAG: E2FSPROGS-1_23-WIP-0720 2001-07-20 18:21:34 -04:00
Theodore Ts'o 9249d980a2 Update final changes before 1.23-WIP-0620 2001-07-20 18:14:10 -04:00
Theodore Ts'o 9b61b8c424 fsck.8.in: Add much more explicit language documenting how the
fs_passno field in /etc/fstab is handled.  (Addresses 
	Debian bug #30833).
2001-07-20 14:25:23 -04:00
Theodore Ts'o 241f7d2068 ext_attr.c (ext2fs_write_ext_attr): When writing the extended
attribute block, set the filesystem changed bit.
2001-07-20 14:17:19 -04:00
Theodore Ts'o d312401961 unix.c (main): Add an explicit warning when the filesystem is left not
completely fixed when e2fsck exits.  (Addresses Debian bug #104502.)
2001-07-20 14:13:49 -04:00
Theodore Ts'o d1ef5c34a9 Update version and release notes for 1.23 WIP release. 2001-07-20 12:35:11 -04:00
Theodore Ts'o 6ae296e734 Comment out ext2_find_first_bit_set and ext2fs_find_next_bit_set
since we're not using them.
2001-07-20 12:33:37 -04:00
Theodore Ts'o da376f5a13 fstype.c (identify_fs): New file which looks at the superblock
of the filesystem to determines its type.

fsck.c (fsck_device, ignore, interpret_type): Call identify_fs
	if the type specified in /etc/fstab is "auto".
2001-07-19 20:38:53 -04:00
Theodore Ts'o 55fd07ed0a This patch completes the initial extended attribute/ACL support for
e2fsck.  We now check the entire EA block to make sure that the all
of the EA entries look sane.
2001-07-19 16:31:25 -04:00
Theodore Ts'o 0f2cfe2579 Fix really stupid typo. 2001-07-10 14:34:41 -04:00
Theodore Ts'o 3c6b8977d4 Speed up journal recovery in userspace by avoiding a pointless
unconditional ext2_flush() call.  Also made ext2_flush() more
efficient when the superblock is modified after the filesystem has
been flushed, and make it clear the superblock dirty flag
after doing the superblock/block group descriptor flush.
2001-07-10 14:27:58 -04:00
Theodore Ts'o 2979b5272e Fix problems in po's Makefile.in.in and POTFILES.in. 2001-07-10 00:45:58 -04:00
Theodore Ts'o 7b63fff9b6 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.)
2001-07-07 23:01:31 -04:00
Theodore Ts'o b5acdb6ae2 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.
2001-07-07 22:27:40 -04:00
Theodore Ts'o f41e7e6961 bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx to
avoid register conflicts when compiling in PIC mode.
2001-07-07 22:14:23 -04:00
Theodore Ts'o e667687581 f_badinode: Update expect.1 to match change in invalid symlink
size text.
2001-07-07 13:23:14 -04:00
Theodore Ts'o 7abb2bdcd6 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.
2001-07-07 13:20:34 -04:00
Theodore Ts'o e8a3ee628a Add code to check and fix incorrect reference counts in the extended
attribute blocks.
2001-07-07 11:12:50 -04:00
Theodore Ts'o ac493821ea Add new functions to bitops.h to find quickly search for set bits in
a bitmask.  (In both C and i386 assembler).
2001-07-04 14:04:58 -04:00
Theodore Ts'o 21d14ec7aa Add support for XFS filesystems. 2001-07-03 21:43:07 -04:00
Theodore Ts'o 342d847db3 Add initial support for extended attribute blocks 2001-07-02 11:54:09 -04:00
Theodore Ts'o 636a954a30 Use long long to calculate the percentage
of the number of blocks in use in the filesystem.
2001-06-29 17:57:26 -04:00
Theodore Ts'o acd8df68c9 Don't predefine RM; it's defined by MCONFIG 2001-06-27 07:51:11 -04:00
Theodore Ts'o 3adfccba5d ADD TAG: E2FSPROGS-1_22 2001-06-23 00:25:18 -04:00