Commit Graph

130 Commits (98224fbc1db8387da1fe0fd1bb3be25c18be2e98)

Author SHA1 Message Date
Theodore Ts'o 5d823a478f Update files for 1.30 release. 2002-11-01 02:13:53 -05:00
Theodore Ts'o ad4fa46604 Avoid counting directory entries during a directory salvage.
Add additional checks to HTREE directories.  We now check the count
and limit fields in the htree header, as well as assuring that the
hash table in each interior node is in ascending order.  We also
check to make sure all leaf nodes are have the expected depth in 
the tree.

Updated test cases to deal with all of the above.
2002-09-30 11:19:19 -04:00
Theodore Ts'o c663305947 Update for 1.29 release. 2002-09-24 01:26:50 -04:00
Theodore Ts'o 87ee8dcad3 Update changelogs for 1.28 release 2002-08-31 03:02:57 -04:00
Theodore Ts'o 0684a4f33b Overhaul extended attribute handling. Should now be correct with
respect to the latest V2 bestbits ACL code.
2002-08-17 10:19:44 -04:00
Theodore Ts'o 838e773e7a Change e2fsck to use a red/black tree in pass1b, to remove O(n**2)
algorithms.  Makes e2fsck much, much faster in certain rare cases
where the filesystem is severely corrupted.
2002-08-01 12:37:00 -04:00
Theodore Ts'o b7a00563b2 Add support to e2fsck to reindex directories to use hash trees. 2002-07-20 00:28:07 -04:00
Theodore Ts'o 503f9e7f6e Add support for the half-MD4 HTREE hash.
Add HTREE root node tests.
2002-06-26 16:52:10 -04:00
Theodore Ts'o 8fdc9985c1 Add initial support for htree directories. 2002-06-25 23:26:34 -04:00
Andreas Dilger b21bf26778 Do sanity checking of the number of blocks and inodes in a group for
8192-byte and 16384-byte blocksize filesystems.

Change the default bytes-per-inode ratio of a new filesystem to be at most
one inode per block for large blocksizes.
2002-06-10 11:05:56 -06:00
Theodore Ts'o da307041e7 Check for inodes which are too big (either too many blocks, or
would cause i_size to be too big), and offer to truncate the inode.
Remove old bogus i_size checks.

Add test case which tests e2fsck's handling of large sparse files.
Older e2fsck with the old(er) bogus i_size checks didn't handle
this correctly.
2002-05-21 21:19:14 -04:00
Theodore Ts'o bcf9c5d401 Fix up Andreas' changeset. Avoid use of dynamic automatic arrays,
and check for EXT2_INDEX_FL for special devices, and consider them to
be invalid if they are set.
2002-05-21 09:14:17 -04:00
Andreas Dilger b94a052a25 Add more complete tests for symlinks: nul termination of long links and length
Improve the f_badsymlinks test case for these new tests.
2002-05-18 13:16:30 -06:00
Theodore Ts'o a8e772498c Update for 1.27 release. 2002-03-08 03:12:14 -05:00
Theodore Ts'o f2d5c93703 Fixed the journal handling so that an offer is made to clear the
journal filesystem in all cases.

Fixed a bug in e2fsck which caused it to give spurious I/O manager
bad messages right before crashes.
2002-03-07 03:13:07 -05:00
Theodore Ts'o f122632e6b E2fsck now prints ranges in pass 5 when printing deltas in
the block and inode bitmaps.
2002-03-07 02:47:07 -05:00
Theodore Ts'o 57173d0feb Update Changelog messages to use tytso@mit.edu for all addresses
after September 7, 2001.  (Forgot to update my emacs file to get
rid of the tytso@valinux.com address.  Oops.)
2002-02-26 14:59:39 -05:00
Theodore Ts'o 7d4343d0d0 Lots of small random portability fixes to make e2fsprogs build
under AIX --- even without the 5L compatibility toolkit, and even
using the uber-crippled AIX native C compiler.
2002-02-12 02:34:44 -05:00
Theodore Ts'o 31a20a34da f_swapfs: Fix expect script to deal with extra spaces now printed
by debugfs's ls command.
2002-02-03 01:24:37 -05:00
Theodore Ts'o a5f3f5c191 Update files for 1.26 release. 2002-02-03 01:00:22 -05:00
Andreas Dilger f10ff6429b Add new Makefile target "make testnew" which will allow easy testcase
creation for e2fsck.
2002-01-06 21:58:52 -07:00
Theodore Ts'o 8cf93332d1 Fix e2fsck's handling of external journals,and update journal
recovery files from 2.4.17-pre8.
2001-12-16 02:23:36 -05:00
Gabriel Paubert b3b3d465b1 journal.c: fix an endianness bug.
f_badorphan: revert previous, erroneous change.
2001-11-30 13:45:28 +01:00
Theodore Ts'o 24934b597b f_badorphan, f_journal: Update expect files to reflect the fact
that new e2fsck's will move the .journal file to a hidden
	inode.
2001-11-30 11:52:46 +01:00
Theodore Ts'o aa4a58ba24 f_miss_blk_bmap: Add new test which checks for bug in e2fsck
where it wouldn't allocate a missing block bitmap on
	filesystems with a blocksize of 2k or 4k.
2001-11-26 20:00:07 -05:00
Theodore Ts'o 62e3e7fe4f journal.c (clear_v2_journal_fields, e2fsck_journal_load): If the
V2 fields are set on a V1 journal superblock, or an
	internal V2 journal has s_nr_users is non-zero, clear the
	entire journal superblock beyond the V1 superblock.  This
	fixes botched V1->V2 updates.

problem.c, problem.h (PR_0_CLEAR_V2_JOURNAL): Add new problem code.

f_bad_local_jnl: New test which tests for a V2 journal with bad 
	fields caused by a botched V1->V2 upgrade.
2001-10-07 02:13:30 -04:00
Theodore Ts'o fbf9111216 Update changelogs for 1.25 release. 2001-09-20 10:47:47 -04:00
Theodore Ts'o fb70775b0f Update for 1.24a release 2001-09-04 15:00:37 -04:00
Theodore Ts'o 109624a133 Update for 1.24 release. 2001-08-31 00:59:55 -04:00
Theodore Ts'o 943ed874fc Add missing log entry showing when we released e2fsprogs 1.23 2001-08-27 12:29:22 -04:00
Theodore Ts'o 9341cf2964 f_bad_inode, f_badsymlinks: Update expect files to reflect
changes in the problem code texts.

f_swapfs: The image file used by f_swapfs had bugs which got
	caught by Andreas' changes to be more strict about
	symlinks.
2001-08-04 20:51:01 -04:00
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
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 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 67960139d7 Update changelogs for 1.22. 2001-06-23 00:16:37 -04:00
Theodore Ts'o 20a57e98df Filter out CR characters from the output, since BK filtered \r fromthe
expect files.  This is needed to make the regression test suite work
again.
2001-06-22 20:29:54 -04:00
Theodore Ts'o f4f75bae85 ChangeLog:
Update for 1.21 release.
2001-06-16 01:14:28 +00:00
Theodore Ts'o 5a9c036bf3 ChangeLog, expect.1, image.gz:
f_badinode: Added a fast symlink with an invalid size to test e2fsck's
  	handling of this case.
RELEASE-NOTES:
  Upate last couple of changes for the WIP release.
2001-06-02 04:55:57 +00:00
Theodore Ts'o a444dca9a7 ChangeLog, expect.1, expect.2, image.gz, name:
f_dup3: New test case which checks handling of blocks claimed multiple
  	times by one inode which weren't handled correctly by e2fsck 1.20.
2001-06-01 19:46:43 +00:00
Theodore Ts'o e6d33eccba ChangeLog, expect, script:
d_loaddump: Fix test script to remove bash'isms, and make the shell
  	script more robust in cases where the user has overridden CFLAGS so
  	that the debugfs binary isn't compiled with -g, and is smaller than
  	128k.  Also specify the blocksize to be used explictly to avoid
  	problems with people who change the mke2fs default parameters.
2001-06-01 15:14:38 +00:00
Theodore Ts'o bb185861d1 e2fsprogs.lsm, version.h:
Update version string for 1.20 release
ChangeLog:
  Update Changelogs for 1.20 release.
2001-05-25 17:35:00 +00:00
Theodore Ts'o 21afac096d ChangeLog, pass1.c, problem.c, problem.h, problemP.h:
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.
ChangeLog, expect.1, expect.2, image.gz, name:
  f_badorphan: New test which verifies corrupted orphan list handling.
2001-05-14 12:47:41 +00:00
Theodore Ts'o bfcd9a116f ChangeLog, expect, name, script:
d_loaddump: New test which verifies debugfs's dump and load routines.
dirblock.c:
  Fix misc. gcc -Wall errors
2001-05-05 16:21:48 +00:00
Theodore Ts'o f6f6583239 ChangeLog, mke2fs.c:
mke2fs.c (PRS): Applied Andreas Dilger's patch to make the -r -s
  	handling a bit more sane.  (Even though -s is deprecated at this
  	point.)
ChangeLog, expect.1:
  f_journal: Update to take into account new printing by the e2fsck
  	program.
version.h:
  Update for upcoming WIP release.
2000-10-25 03:01:37 +00:00
Theodore Ts'o 98f8a97bc0 ChangeLog, expect.1, expect.2, image.gz:
f_journal: Make the test check for a wide variety of mixed sizes of
  	orphaned inodes (and not just a size of 0).
2000-10-18 19:03:39 +00:00
Theodore Ts'o da1a022670 ChangeLog, hold_inode.c, random_exercise.c:
random_exercise.c: New file which feeds a lot of file creations and
  	deletions (while leaving the file descriptor open, and then closing
  	the file descriptor later).  This generates lots of fodder for the
  	orphan list code, as well as for the ext3 journal.
  hold_inode.c: New file which holds an inode or a directory open (for
  	testing orphan list code).
ChangeLog, run_e2fsck, expect.1, expect.2, image.gz, name, expect:
  run_e2fsck: Filter out JFS DEBUG messages when comparing e2fsck output.
  f_journal: New test case which checks out running the ext3 journal.
  f_orphan: New test case which checks clearing the list of orphan
  	inodes (files and directories).
  f_swapfs/expect: Update to reflect new debugfs format for dumping the
  	blocks of an inode.
2000-08-20 21:48:45 +00:00
Theodore Ts'o f9e67064ce configure.in:
Commit this file for future use; contains a configure.in script for when
  libuuid gets separtead out into its own package.
libext2fs.texinfo:
  Update version numbers for 1.19 release.
TODO:
  Commit TODO list for 1.19 release.
README:
  Update file for 1.19 release.
ChangeLog, e2fsprogs.spec:
  e2fsprogs.spec: Merge in a few changes from the Red Hat 6.2 spec file,
  	now that we're using a modern rpm to build e2fsprogs.  Also updated
  	version number to 1.19.
version.h:
  Update version number for 1.19 release.
ChangeLog:
  Check in changes for 1.19 release.
2000-07-13 23:25:54 +00:00
Theodore Ts'o 93d29696df ChangeLog, test_script.in:
test_script.in: Ignore files in the test directory (to avoid spurious
  	messages when builddir==srcdir).
2000-05-25 16:40:54 +00:00
Theodore Ts'o 4ea0a1109d ChangeLog, problem.c, problem.h, super.c:
problem.c, problem.h (PR_0_HURD_CLEAR_FILETYPE): Add new problem code.
  super.c (check_super_block): If the OS type in the superblock is the
  	Hurd, check to see if the filetype feature is set, and offer to clear
  	it if so.  This needs to be done since the Hurd doesn't properly
  	support the filetype feature.  (And since the hurd allows the
  	transmogrification of files to special files and vice versa --- for no
  	good reason that I can understand --- it can't support the filetype
  	feature for the forseeable future, either.)
ChangeLog, mke2fs.c:
  mke2fs.c (main): We forcibly turn off the filetype feature if the OS
  	is the hurd, since the hurd doesn't support it.  (And since the hurd
  	allows the transmogrification of files to special files and vice versa
  	--- for no good reason that I can understand --- it can't support the
  	filetype feature for the forseeable future, either.)
  mke2fs.c (proceed_question): Fix reversed sense of proceed_question
  	that was busted due to the internationalization patch.  Fixed bug
  	where if proceed_question was called twice, the input buffer wasn't
  	cleared of the previous question's newline.
ChangeLog, expect.1, expect.2, image.gz, name:
  f_hurd: Add test for Hurd-specific features (right now, just checks to
  	make sure the filetype feature is cleared)
ChangeLog, ls.c:
  ls.c (list_super): Change the string displayed for the Hurd to be
  	GNU/Hurd, instead of just "GNU".
2000-05-08 13:33:17 +00:00
Theodore Ts'o cc73e0401d ChangeLog:
Makefile.in (source_tar_file): Remove the resize directory from the
  list of excluded files.
  version.h: Update version header for an WIP release.
e2fsprogs.spec, ChangeLog:
  e2fsprogs.spec: Updated for 1.19 release; added resize2fs.
ChangeLog, expect.1:
  f_filetype: Updated expect script to match with new text for
  	immutable/append-only files.
TODO:
  Update TODO file.
2000-04-06 23:05:32 +00:00
Theodore Ts'o 58efb8250a ChangeLog, expect:
f_swapfs: Fix expected text to match changed debugfs dump command for
  	i_generation field.
2000-02-08 00:50:34 +00:00
Theodore Ts'o cd08636179 libext2fs.texinfo, ChangeLog:
Update for 1.18 release.
1999-11-10 16:00:39 +00:00
Theodore Ts'o 0444e15b34 ChangeLog, run_e2fsck, expect.1, expect.2, image.gz, name, script:
f_imagic: New test case which tests handling of imagic inodes in an
  	non-imagic-enabled filessystem.
  f_imagic_fs: New test case which tests handling of imagic inodes in an
  	imagic-enabled filesystem.
  f_filetype: New test case which tests setting filetype information in
  	a filesystem.  Also tests handling of immutable special files
  	(device/fifo).
  run_e2fsck: Add support for PREP_CMD, which allows a test case to
  	specify some commands which will be run (via eval) after the image is
  	compressed and before running e2fsck.
1999-11-10 13:17:24 +00:00
Theodore Ts'o 28e1194e65 Many files:
Update for 1.17 release.
1999-10-26 18:17:20 +00:00
Theodore Ts'o 614fdfd5d9 ChangeLog:
Update for 1.16 release.
libext2fs.texinfo:
  Update version number for 1.16 release.
1999-10-23 03:19:51 +00:00
Theodore Ts'o 67efcf71ab ChangeLog, expect.1, expect.2, image.gz, name:
New test case which tests duplicate '.' and '..' entries.
1999-09-16 14:20:07 +00:00
Theodore Ts'o 8b25041ede ChangeLog, expect.1, expect.2, image.gz:
f_expand: Make test case better by testing increasing the size of
  	lost+found where an indirect block must be created.  Also add checks
  	to see what happens when directories are disconnected because their
  	containing directory is destroyed (turned into a socket :-)
  f_dupfsblks: Add additional test cases where files share duplicate
  	blocks with both other files and filesystem metadata.
1999-09-14 19:54:39 +00:00
Theodore Ts'o 8573470251 ChangeLog, expect:
f_swapfs: Change to deal with new dump_inode command.
1999-07-31 00:35:04 +00:00
Theodore Ts'o 657cb97522 ChangeLog:
Add 1.15 release note to the Changelogs.
1999-07-30 23:19:10 +00:00
Theodore Ts'o e72a9ba394 ChangeLog, e2fsck.h, pass1.c, pass2.c, pass4.c, swapfs.c:
e2fsck.h:
  pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode,
  	pass1_check_directory, e2fsck_use_inode_shortcuts): Make pass1_* be
  	private static functions, and create new function
  	e2fsck_use_inode_shortcuts which sets and clears the inode shortcut
  	functions in the fs structure.
  e2fsck.h:
  pass2.c (e2fsck_process_bad_inode): Make process_bad_inode() an
  	exported function.
  pass4.c (e2fsck_pass4): Call e2fsck_process_bad_inode to check if a
  	disconnected inode has any problems before connecting it to
  	/lost+found.  Bug and suggested fix by Pavel Machek <pavel@bug.ucw.cz>
ChangeLog, swapfs.c:
  swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3 kernels
  	that use i_generation instead of i_version.  Patch supplied by Jon
  	Bright <sircus@sircus.demon.co.uk>.
ChangeLog, mke2fs.8.in:
  mke2fs.8.in: Fix typo in man page which caused the badblocks command
  	to not show up in the "SEE ALSO" section.
ChangeLog, expect.1, expect.2, image.gz, name:
  f_recnect_bad: New test which checks the case where a disconnect inode
  	also bad inode fields; we need to make sure e2fsck offers to fix the
  	inode (or clear the inode, as necessary).
1999-06-25 15:40:18 +00:00
Theodore Ts'o 3f408754bc ChangeLog, expect.1, expect.2, image.gz, name:
f_lpffile: New test which checks how e2fsck handles a the case where
  	lost+found exists, but it's not a directory.
1999-03-15 17:00:48 +00:00
Theodore Ts'o 9e51eca782 ChangeLog, message.c:
message.c (safe_print): New function which prints strings, converting
  	non-printable characters using the '^' and M-notation.  This function
  	is now used to print directory name entries and pathnames.
ChangeLog:
  Update for release of E2fsprogs 1.14.
1999-01-09 16:32:31 +00:00
Theodore Ts'o 556ad1327f Many files:
Update version information in ChangeLogs, release notes,
  documentation, etc.  for release of version 1.13.
1998-12-19 08:10:58 +00:00
Theodore Ts'o d56385e77c ChangeLog, expect.1, expect.2:
f_badtable, f_illitable, f_lpf: Update to deal with the fact that
  	e2fsck will now create a lost+found directory at the end of
  	pass 3 if one isn't present.
ChangeLog:
  Oops; premature checkin of ChangeLog.
1998-12-04 06:18:58 +00:00
Theodore Ts'o 4a5fa19212 ChangeLog, .del-ChangeLog~905e7699, version.h:
Update for 1.12 release.
1998-07-09 05:42:45 +00:00
Theodore Ts'o c9833a605c ChangeLog, script:
f_swapfs: Fix script to ignore the version string header which debugfs
  	now prints when it starts up.
libext2fs.texinfo:
  Update copyright notice and revision date.
RELEASE-NOTES, version.h:
  Update for 1.12 release.
1998-07-05 19:37:53 +00:00
Theodore Ts'o 246501c612 Many files:
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-03-24 16:22:38 +00:00
Theodore Ts'o 6e5eeba573 ChangeLog, script:
Add scripts to skip the e_brel_bma and e_irel_ima tests (since they
  have been removed from the library for now)
1997-10-25 22:43:58 +00:00
Theodore Ts'o 1c27cac2e8 ChangeLog, .del-io.h~72680822, irel_ma.c, llseek.c, rw_bitmaps.c:
io.h: Change the prototype of ext2fs_llseek() to use int's instead of
  	unsigned int's.
  llseek.c: Change to allow PIC and !HAVE_LLSEEK.  Add a prototype to
  	make life easer for GNU Libc 2.
  rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
  	filesystem has its bitmaps stored as 32-bit words with bit 0 as the
  	LSB of each word.  Thus a bitmap with only bit 0 set would be, as a
  	string of bytes, 00 00 00 01 00 ...  To cope with this, we
  	byte-reverse each word of a bitmap if we have a big-endian filesystem,
  	that is, if we are *not* byte-swapping other word-sized numbers.
ChangeLog, expect.1, image.gz:
  f_badinode: Modify test to check for "bad" character and block devices
  	(i.e., ones which contain garbage block entries)
1997-08-14 17:20:42 +00:00
Theodore Ts'o 024996cf0a ChangeLog:
Check-in for the 1.11 source release.
1997-06-17 05:38:35 +00:00
Theodore Ts'o a29f4d30f2 Many files:
Checkin of e2fsprogs 1.10
1997-04-29 21:26:48 +00:00
Theodore Ts'o 2ecc6fefa1 Many files:
Checked in e2fsprogs 1.09
1997-04-29 17:57:00 +00:00
Theodore Ts'o 521e368572 Many files:
Checked in e2fsprogs 1.08.
1997-04-29 17:48:10 +00:00
Theodore Ts'o 19c78dc07f Many files:
Checked in e2fsprogs-1.07
1997-04-29 16:17:09 +00:00
Theodore Ts'o 5c576477cc Many files:
Checked in e2fsprogs 1.06
1997-04-29 15:29:49 +00:00
Theodore Ts'o 1e3472c5f3 Many files:
Checked in e2fsprogs 1.05
1997-04-29 14:53:37 +00:00
Theodore Ts'o 62c06f790c Many files:
Checked in e2fsprogs 1.04.
1997-04-29 14:34:47 +00:00
Theodore Ts'o 7f88b04341 Many files:
Checkin of e2fsprogs 1.03.
1997-04-26 14:48:50 +00:00
Theodore Ts'o 74becf3c0a Many files:
Checkin of e2fsprogs 1.02.
1997-04-26 14:37:06 +00:00
Theodore Ts'o a418d3ad81 Many files:
Checked in e2fsprogs 0.5c
1997-04-26 14:00:26 +00:00