Commit Graph

382 Commits (1f81f05a41a4ddf7a493d001be6063ac02cc5523)

Author SHA1 Message Date
Theodore Ts'o 3034f62a0f ChangeLog, Makefile.in, bitops.h, gen_bitmap.c:
Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
  	ext2fs_mark_generic_bitmap and ext2fs_unmark_generic_bitmap to
  	gen_bitmap.c as normal functions.  (This saves space and doesn't
  	significantly change the speed of e2fsck on a P-III.)
ChangeLog:
  Add missing log entry for unix.c.
2001-06-11 15:17:45 +00:00
Theodore Ts'o 5df55d7f84 ChangeLog, Makefile.in, swapfs.c, unix.c:
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.
Many files:
  ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c, inode.c,
  	native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only include the
  	byte-swapping logic if ENABLE_SWAPFS is turned on or if we're on a
  	big-endian machine.
  initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to set
  	EXT2_FLAG_SWAP_BYTES, instead of using ext2fs_native_flag.
  native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
  	autoconf to determine whether or not return EXT2_FLAG_SWAP_BYTES.
2001-06-11 07:00:04 +00:00
Theodore Ts'o 725c474ffc ChangeLog, jfs.h:
jfs.h: Synchronize with ext3 0.7a
ChangeLog, recovery.c, revoke.c:
  recover.c, revoke.c: Synchronize with ext3 0.7a
2001-06-08 11:55:44 +00:00
Theodore Ts'o a479fe6049 ChangeLog, recovery.c:
recovery.c (scan_revoke_records): Fix bug in recovery code; missing
  	byte order conversion.
2001-06-02 04:50:14 +00:00
Theodore Ts'o 62b6d47987 ChangeLog:
Add other change to pass1.c
2001-06-02 04:37:02 +00:00
Theodore Ts'o fdbdea09b8 ChangeLog, pass1.c, pass2.c, problem.c, problem.h:
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.
  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-02 04:26:26 +00:00
Theodore Ts'o 36a23e1806 ChangeLog:
Fix typo in ChangeLog.
2001-06-02 00:54:10 +00:00
Theodore Ts'o 2f686ace1c ChangeLog, journal.c, problem.c, problem.h:
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.
2001-06-02 00:38:40 +00:00
Theodore Ts'o 797f5ef14e ChangeLog, wordwrap.pl:
Makefile.in: Move include/asm/types.h.in to lib/ext2fs/ext2_fs.h.in.
  wordwrap.pl: Add some rules which help fix up the dependencies.
Many files:
  Move include/asm/types.h.in to lib/ext2fs/ext2_fs.h.in.
2001-06-01 23:49:46 +00:00
Theodore Ts'o 71d521c609 ChangeLog, pass1.c, pass1b.c:
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-06-01 19:29:36 +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 561cd4dd60 ChangeLog, journal.c:
journal.c (e2fsck_journal_reset_super): Remove extraneous line
2001-05-25 16:40:56 +00:00
Theodore Ts'o c7f23364fd ChangeLog, journal.c, problem.c, problem.h:
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-23 22:19:47 +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 54c637d4d2 Many files:
badblocks.c, chattr.c, dumpe2fs.c, e2image.c, findsuper.c, lsattr.c,
  	mke2fs.c, mklost+found.c, tune2fs.c, util.c: Change location of
  	ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, resize2fs.h:
  resize2fs.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, debugfs.h:
  debugfs.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, e2fsck.h, scantest.c:
  e2fsck.h, scantest.c: Change location of ext2_fs.h to be
  	ext2fs/ext2_fs.h
ChangeLog, Makefile.in, tst_uuid.c, uuid_time.c:
  tst_uuid.c, uuid_time.c: Remove unneeded #include of ext2_fs.h
ChangeLog, Makefile.in, e2p.h:
  e2p.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, test_icount.c, test_rel.c:
  test_icount.c, test_rel.c: Change location of ext2_fs.h to be
  	ext2fs/ext2_fs.h
2001-05-14 11:45:38 +00:00
Theodore Ts'o 424cd2beb7 ChangeLog, e2fsck.h, journal.c, problem.c, problem.h, super.c:
super.c (check_super_block): Be more strict on checking
  	s_r_blocks_count superblock field.
  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.
  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-14 04:06:56 +00:00
Theodore Ts'o 328a5ce4ae ChangeLog, journal.c:
journal.c: Code cleanup; initialize journal_enable_debug using an
  	initializer.
2001-05-13 20:21:25 +00:00
Theodore Ts'o fc9a69ca37 ChangeLog, unix.c:
unix.c (PRS): Skip validation of -C's file descriptor if it is zero,
  	since that is special case.
2001-05-12 13:43:46 +00:00
Theodore Ts'o f0b8c87d2a ChangeLog, super.c:
super.c (release_orphan_inodes): Add gettext quoting around
  	"Truncating" and "Clearing" for i18n.
2001-05-09 06:03:58 +00:00
Theodore Ts'o e39ac92269 ChangeLog, util.c:
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.
2001-05-05 06:47:24 +00:00
Theodore Ts'o b9852cd87b ChangeLog, pass2.c:
pass2.c (check_dir_block): Ignore EXT2_ET_DIR_CORRUPTED errors from
  	ext2fs_read_dir_block().
2001-05-05 05:14:59 +00:00
Theodore Ts'o ae8160e692 ChangeLog, unix.c:
unix.c (PRS): Validate the completion information file descriptor so
  	that the completion bar won't get accidentally written onto the disk.
2001-05-01 21:13:37 +00:00
Theodore Ts'o 5f629b7491 ChangeLog, e2fsck.8.in:
e2fsck.8.in: Add explanation that you can use mke2fs -n -b blocksize
  	to printout alternate superblock locations.
2001-05-01 20:01:08 +00:00
Theodore Ts'o bc57f15390 ChangeLog, unix.c:
unix.c (check_if_skip): If the max_mount_count is zero, treat it as
  	having no count set.
2001-04-26 04:11:46 +00:00
Theodore Ts'o ef059870af ChangeLog, super.c:
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-04-17 00:40:02 +00:00
Theodore Ts'o 15986f7931 ChangeLog, jfs_user.h, journal.c:
journal.c (mark_buffer_uptodate): Add emulation of kernel function
  	mark_buffer_uptodate.
2001-03-29 19:22:16 +00:00
Theodore Ts'o 1f73503816 ChangeLog, recovery.c, revoke.c:
recovery.c, revoke.c: Synchronize with 0.6b ext3 files.
2001-03-29 19:00:50 +00:00
Theodore Ts'o d051521278 ChangeLog, journal.c:
journal.c (e2fsck_run_ext3_journal): Force a flush of the filesystem
  	and io_channel before replaying the journal.
2001-02-13 04:32:53 +00:00
Theodore Ts'o a5c33f26db ChangeLog, pass1.c:
pass1.c (check_blocks): Fix large file checking code so that files >
  	2GB are considered large files, and restrict directories from being >
  	2GB.
version.h:
  Update for WIP release.
2001-01-18 02:34:03 +00:00
Theodore Ts'o a9ca2016e1 ChangeLog, pass1.c, problem.c, problem.h:
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.
ChangeLog, journal.c:
  journal.c (e2fsck_journal_fix_unsupported_super): Remove unused
  	function.  Add FIXME notes to e2fsck_get_journal(), from Andreas
  	Dilger.
2001-01-12 21:53:25 +00:00
Theodore Ts'o 37b6b2975f ChangeLog, problem.c:
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.)
2001-01-12 21:16:13 +00:00
Theodore Ts'o 6a6d3d44d6 ChangeLog, journal.c:
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.
2001-01-12 21:11:24 +00:00
Theodore Ts'o 721edd0edd ChangeLog, super.c:
super.c: Minor whitespace cleanups, from Andreas Dilger.
mtrace.h:
  mtrace.h: Minor whitespace cleanups, from Andreas Dilger.
ChangeLog, message.c:
  message.c (special_inode_name): Add more special inode names (From
  	Andreas Dilger)
2001-01-12 21:05:57 +00:00
Theodore Ts'o 58a75177ca ChangeLog, util.c:
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)
2001-01-12 20:59:19 +00:00
Theodore Ts'o 4035f40bc4 ChangeLog, pass2.c:
pass2.c: Minor whitespace cleanups, from Andreas Dilger.
2001-01-12 20:25:50 +00:00
Theodore Ts'o 7e92dfae9e ChangeLog, journal.c, problem.c:
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-12 15:30:25 +00:00
Theodore Ts'o 5ba23cb149 ChangeLog, e2fsck.h, flushb.c, iscan.c, unix.c:
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.
ChangeLog, pass1.c:
  pass1.c (process_block): Remove dead code which was never getting
  	executed.
2001-01-11 19:15:02 +00:00
Theodore Ts'o 86c627ec11 Many files:
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-11 15:12:14 +00:00
Theodore Ts'o 95a5bc918f ChangeLog, problem.c:
problem.c: Fix another broken @F vs @f problem.
2001-01-11 04:58:21 +00:00
Theodore Ts'o 53ef44c40a Many files:
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-06 05:55:58 +00:00
Theodore Ts'o d74edf4e86 ChangeLog, message.c, problem.c:
Whoops, @d was already taken by "directory".  Use @v for device, and
  re-order the listing of at-expansions to avoid this problem in the
  future.
2001-01-03 19:38:04 +00:00
Theodore Ts'o f18996c8eb ChangeLog, pass1.c, problem.c, problem.h:
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.
2001-01-03 16:57:24 +00:00
Theodore Ts'o e904406eb5 ChangeLog, message.c:
Add @d abbreviation for device.
2001-01-03 15:39:37 +00:00
Theodore Ts'o 1ce6453931 ChangeLog, message.c:
message.c: Add @j abbreviation for journal.
2001-01-03 15:34:20 +00:00
Theodore Ts'o cc7067b40b ChangeLog, Makefile.in, jfs_user.h:
jfs_user.h: Moved contents of jfs_e2fsck.h into jfs_user.h.
2001-01-03 13:24:06 +00:00
Theodore Ts'o d3f35b6451 ChangeLog, journal.c:
journal.c (e2fsck_check_ext3_journal): Force a fsck if we remove the
  	journal stored on a reserved inode.  Also force a fsck if the journal
  	appears to exist while !NEEDS_RECOVERY, and we forcibly reset the
  	journal.
2001-01-03 13:00:43 +00:00
Theodore Ts'o 5dd8f963d0 ChangeLog, journal.c, pass1.c, super.c, unix.c:
journal.c, pass1.c, super.c, unix.c: Replace use of struct ext2fs_sb
  	with struct ext2_super_block.
ChangeLog, debugfs.c:
  debugfs.c Replace use of struct ext2fs_sb with struct ext2_super_block.
2001-01-01 15:51:50 +00:00
Theodore Ts'o f5ae75e5f0 ChangeLog, pass1.c:
pass1.c (check_blocks): Remove use of EXT2_HAS_*_FEATURE macros.
2001-01-01 14:52:52 +00:00
Theodore Ts'o 2fe1efe2e5 ChangeLog, ext2fs.h:
ext2fs.h: Cleaned up header file by removing definitions of feature
  	flags that might not have been defined in older ext2 header files.
  	Now that we're using our own include/linux/ext2fs.h header file, this
  	can never happen.
  jfs_dat.h: Removed old header file which is no longer needed.
ChangeLog:
  jfs_compat.h: Remove uneeded header file.
2000-12-31 13:39:17 +00:00
Theodore Ts'o c59a704b79 ChangeLog, mtrace.c, mtrace.h:
malloc.h, mtrace.c: Renamed malloc.h to mtrace.h to avoid conflicts
  	with the system header file.
2000-12-31 01:52:03 +00:00
Theodore Ts'o b2f93192a1 ChangeLog, journal.c, problem.h:
problem.h: Fixed numbering of pass1 error messages; an extra 0 had
  	slipped into some of the numbers.  (Pointed out by Andreas Dilger)
  journal.c (e2fsck_journal_fix_corrupt_super): Clean up unnecessary
  	automatic variable.  Add explanatory comment about the kernel
  	emulation routines.  (Suggested by Andreas Dilger)
2000-12-30 20:33:42 +00:00
Theodore Ts'o 9b5657591b ChangeLog, super.c:
super.c (release_orphan_inodes): Fix spelling typo in error message.
ChangeLog, unix.c:
  unix.c (main): Clarify coments (no code changes)
ChangeLog, journal.c:
  journal.c (e2fsck_check_ext3_journal): Check to make sure the journal
  	fields are consistent if any of the superblock fields are set.  (Backs
  	out erroneous change made by sct, pointed out by Andreas.)
2000-12-13 18:50:22 +00:00
Theodore Ts'o 8188c9e6b3 ChangeLog, pass1.c:
pass1.c (e2fsck_pass1): Offer to update the filesystem revision level
  	if we need to set large files flag.  Patch from Andreas Dilger.
2000-12-13 18:39:14 +00:00
Theodore Ts'o 7b59f1efb1 ChangeLog, super.c:
super.c (check_super_block): If we have any of the compatibility flags
  	set, we need to have a revision 1 filesystem.  Most kernels will not
  	check the flags on a rev 0 filesystem and we may have corruption
  	issues because of the incompatible changes to the filesystem.  Patch
  	from Andreas Dilger.
2000-12-13 18:11:44 +00:00
Theodore Ts'o 060b5fbf80 ChangeLog, problem.c, problem.h:
problem.c, problem.h (PR_0_FS_REV_LEVEL, PR_1_FS_REV_LEVEL): Add new
  	problem codes.
2000-12-13 18:07:23 +00:00
Theodore Ts'o bf2d499904 ChangeLog, flushb.c:
flushb.c: Fix flushb so that it does something other than waste disk
  	space when built on systems with modern header files and add a
  	non-subtle Copyright Licensing restriction so Yann will remove it from
  	the Debian Distribution.  (Now violates the Debian Free Software
  	Guidelines, on purpose.)
2000-12-09 14:46:20 +00:00
Theodore Ts'o f43650c308 ChangeLog, journal.c:
journal.c (e2fsck_check_ext3_journal): If JFS_DEBUG is defined at the
  	top level, set the JFS debuging level to 2.
2000-12-09 06:47:56 +00:00
Theodore Ts'o 0e8a9560d8 Many files:
jfs_e2fsck.h, jfs_user.h: Replaces jfs_compat.h.  The jfs.h file has
  	been moved to the include/linux directory.
  journal.c, revoke.c, recovery.c: Updated files from Stephen to support
  	the V2 superblock and revoke processing.  The journal.c and revoke.c
  	files are copies from the ext3 kernel source.
  Makefile.in: Added revoke.c to the list of source/object files.
Makefile.in:
  Fix up some mistakes in the source file list, and regenerate the
  dependencies.
  Update Makefile dependencies.
ChangeLog, jfs.h:
  jfs.h: Remove excess #include of JFS_DEBUG.  Not needed for e2fsprogs,
  	since we optioanlly define it in the configuration file system.
2000-12-09 06:41:25 +00:00
Theodore Ts'o 133a56dc9d ChangeLog, message.c, pass1b.c, pass2.c, pass3.c, problem.c, problem.h:
pass1b.c: Change routines to use PR_1B_BLOCK_ITERATE when reporting
  	problems rather than using com_err directly.
  problem.c, problem.h (PR_1B_BLOCK_ITERATE): Add new problem code.
  message.c (expand_percent_expression): Add safety check.  If ctx->str
  	is NULL, print "NULL" instead of dereferencing the null pointer.
  pass1b.c, pass2.c, pass3.c: Change calls to ext2fs_block_iterate to
  	ext2fs_block_iterate2, to support 64-bit filesizes and to speed things
  	up slightly by avoiding the use of the ext2fs_block_iterate's
  	compatibility shim layer.
version.h:
  Update for WIP release.
2000-11-17 05:40:49 +00:00
Theodore Ts'o 3f65f1acaa ChangeLog, util.c:
util.c (get_backup_sb): Calculate backup superblock correctly when the
  	blocksize is > 1k.
2000-10-30 14:33:49 +00:00
Theodore Ts'o 241f224fb2 .del-jfs.h~fa6593e8, ChangeLog, jfs_compat.h, journal.c:
jfs.h, jfs_compat.h, journal.c: Updated to include the definition of
  	the new journal superblock format; still only supports V1 superblocks
  	for now.  (From sct)
2000-10-26 20:42:07 +00:00
Theodore Ts'o 8394902e04 ChangeLog, journal.c, problem.c, problem.h, super.c:
super.c (release_inode_block, release_inode_blocks,
  	release_orphan_inodes): Add code to deal with truncating inodes which
  	are still in use (but which are on the orphan list because they need
  	truncation).
  problem.c, problem.h: Rename PR_0_CLEAR_ORPHAN_INODE to
  	PR_0_ORPHAN_CLEAR_INODE, and remove PR_0_ORPHAN_INODE_INUSE.
  journal.c (e2fsck_run_ext3_journal): Add i18n support, and print a
  	message when the journal is being recovered.
2000-10-25 01:38:50 +00:00
Theodore Ts'o b09a4b0c90 ChangeLog, pass1.c:
pass1.c (e2fsck_pass1): Don't check the i_mode field for the journal
  	inode, if it is in use.
2000-10-24 21:16:09 +00:00
Theodore Ts'o adfca56f9f ChangeLog, extend.c, flushb.c:
extend.c:
  flushb.c: Add include of nls-enable.h which is necessary so that they
  	can compile correctly.
2000-09-12 21:24:36 +00:00
Theodore Ts'o 2575fb0443 ChangeLog, unix.c:
unix.c (main): If we're doing a read-only check, skip the journal
  	playback, but don't abort the e2fsck run.
2000-08-22 21:50:04 +00:00
Theodore Ts'o 99a2cc969f ChangeLog, jfs_compat.h, journal.c, pass3.c:
jfs_compat.h (J_ASSERT):
  journal.c (e2fsck_run_ext3_journal):
  pass3.c (adjust_inode_count): Use fatal_error() instead of exit().
ChangeLog, super.c:
  super.c (release_orphan_inodes): Fix typo; should do bounds checking
  	on next_ino instead of ino.
2000-08-22 21:41:52 +00:00
Theodore Ts'o 243dc31f48 ChangeLog, unix.c:
unix.c: Use fatal_error() instead of exit() whenever possible.  Also
  	fix the fsck exit codes so that we use FSCK_USAGE when it is
  	appropriate.  Rename global_signal_ctx to e2fsck_global_ctx and let it
  	be exported globally.
2000-08-22 21:37:47 +00:00
Theodore Ts'o cc96b2b0fe ChangeLog, util.c:
util.c (fatal_error): Try to flush the I/O manager before forcing an
  	exit.
2000-08-22 21:30:11 +00:00
Theodore Ts'o ecf1b7767e ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
  	e2fsck_check_ext3_journal to smash the journal because
  	journal->j_transaction_sequence wasn't getting initialized.
  journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
  	to e2fsck_clear_recover from recover_ext3_journal to after the
  	filesystem has been closed and reopened.  Otherwise, the superblock in
  	the filesystem handle will probably be stale, and will overwrite the
  	newer version of the superblock written by the log recovery.
  message.c (expand_inode_expression): Add support for %Iu and %Ig
  problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
  super.c (release_orphan_inodes, release_inode_block,
  	release_inode_blocks): Update the block group descriptor counts when
  	freeing the orphan inode.  Use PR_0_CLEAR_ORPHAN_INODE to report when
  	we clear an orphan.
  journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
  	reopen the filesystem using the device name instead of the filesystem
  	name.
2000-08-20 22:06:31 +00:00
Theodore Ts'o 80bfaa3e40 Many files:
Makefile.in: Update the make dependencies
  problem.c, problem.h: Add the problem codes:
  	PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
  	PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
  	PR_0_ORPHAN_INODE_INUSE
  super.c (release_inode_blocks, release_orphan_inodes,
  	check_super_block): Add support for clearing orphaned inodes from the
  	unmounted filesystem.
  journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
  	this is now handled in check_super_block --- non-journaled filesystems
  	can use the orphan list in the future.  Also, move the the re-opening
  	of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
  debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
  configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 15:08:37 +00:00
Theodore Ts'o 3b5386dca8 Many files:
journal.c: implement loading of ext3 journal for recovery code
  problem.c (fix_problem): return answer from PR_AFTER_CODE to caller.
  	Add journal problems.
  recovery.c (journal_recover): user-space ext3 journal recovery code
  unix.c (main) : check journal and do recovery in separate steps
  jfs.h, recovery.c: Files ext3 kernel code.
  jfs_compat.h: Compatibility header file to allow kernel code to be
  	linked to e2fsck.
2000-08-14 14:25:19 +00:00
Theodore Ts'o b8d164cd24 ChangeLog, unix.c:
unix.c (calc_percent): Make sure that we don't take a floating
  	exception if the max value is zero.  (should normally never happen,
  	but...)
2000-08-08 03:17:04 +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 17390c047f ChangeLog, Makefile.in, e2fsck.h, journal.c, unix.c:
unix.c (check_if_skip): Modify algorithm for checking s_max_mnt_count
  	to match with the kernel.  (If s_max_mnt_count is negative, ignore the
  	mnt_count check.)
  unix.c (e2fsck_update_progress): Adjust the width of the progress bar
  	dynamically, based on the filesystem name that we need to display.
  unix.c (main): If the ext3 needs_recovery flag is set, call
  	e2fsck_run_ext3_journal() and then restart the e2fsck run.
  journal.c (e2fsck_run_ext3_journal): New file which contains logic to
  	recover the ext3 journal.  This version relies on the kernel being
  	able to mount the filesystem in order to run the journal.
2000-07-07 04:13:21 +00:00
Theodore Ts'o e4c8e885d2 ChangeLog, Makefile.in:
Makefile.in (install): Install resize2fs in /sbin, not /usr/sbin.
ChangeLog, unix.c:
  unix.c: Also, re-arrange the logic so that we do the time check only
  	after doing the percentage check, and we only advance the spinner if
  	we're about to display it.
ChangeLog:
  Fix minor wording error in Chagelog.
2000-07-05 23:54:46 +00:00
Theodore Ts'o 9226904bfb ChangeLog, unix.c:
unix.c (e2fsck_update_progress): Only save and check the last
  	percentage after multiplying it by 10, nor 1000, since we only need to
  	save values to a tenth of a percent (and the percentage is already
  	from 0 .. 100%, not 0 .. 1).
2000-07-05 18:25:59 +00:00
Theodore Ts'o 9cbfb8d0d9 ChangeLog, pass1.c:
pass1.c (e2fsck_pass1): Check to see if the ext3 s_last_orphan field
  	is set; if so, clear it, so that ext3 mounting code won't get confused
  	by the fact that we've cleared out the orphaned inodes.
2000-07-04 19:51:22 +00:00
Theodore Ts'o bbd47d76b7 ChangeLog, pass5.c, problem.c, problem.h:
pass5.c (check_block_bitmaps, check_inode_bitmaps): Add error checking
  	for a "should never happen case".
  problem.c, problem.h (PR_5_COPY_IBITMAP_ERROR,
  	PR_5_COPY_BBITMAP_ERROR): Add new error codes.
2000-06-10 19:21:33 +00:00
Theodore Ts'o d647a1ea4d ChangeLog, pass1.c, problem.c, problem.h:
pass1.c (pass1, check_size): Apply patch from Chris Wedgewood
  	(cw@foof.org) which checks to see if special devices have a non-zero
  	size, and deals with it.
  problem.c, problem.h (PR1_SET_NONZSIZE): Add new problem code.
2000-05-27 14:40:09 +00:00
Theodore Ts'o 1d2792181f ChangeLog, Makefile.in:
Makefile.in (install): Create a symbolic link for fsck.ext3 as well.
ChangeLog, e2fsprogs.spec:
  e2fsprogs.spec (fsck.ext3): Add /sbin/fsck.ext3 to the spec file.
2000-05-19 02:38:14 +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 373b8337c7 Many files:
badblocks.c, dumpe2fs.c, e2label.c, mke2fs.c, tune2fs.c, uuidgen.c:
  	For platforms that don't define optarg.h, manually define optarg and
  	optind.
ChangeLog, main.c:
  main.c: For platforms that don't define optarg.h, manually define
  	optarg and optind.
ChangeLog, unix.c:
  unix.c: For platforms that don't define optarg.h, manually define
  	optarg and optind.
2000-04-03 16:22:35 +00:00
Theodore Ts'o 01fbc70141 ChangeLog, pass1.c, problem.c:
pass1.c (check_immutable, e2fsck_pass1_check_device_inode): Check for
  	the append-only as well as the immutable flag.
  problem.c (PR_1_SET_IMMUTABLE): Adjust message to include append-only
  	flag.  Fix comment for compression flag.
2000-04-03 13:57:21 +00:00
Theodore Ts'o 0601232332 ChangeLog, e2fsck.h, unix.c:
unix.c (e2fsck_update_progress): Limit the number of updates to the
  	progress bars to 8 times a second.  This allows a 9600 baud console
  	link to keep up.
2000-02-12 20:12:43 +00:00
Theodore Ts'o 1917875fcd Many files:
unix.c (main): If compression is enabled on the filesystem, print a
  	warning message (for now).
  message.c: Add new compression shortcut: @c == compress
  problem.c, problem.h (PR_1_COMPR_SET): Add new error code.
  pass1.c (check_blocks): If the inode has EXT2_COMPRBLK_FL flag set,
  	check to see if the filesystem supports compression.  If it does pass
  	this information down to process_block() so it can treat the
  	compressed block flag words correctly.  If not, offer to clear the
  	flag, since it shouldn't be set.
  	(process_block): If an inode has the compressed inode flag set, allow
  	EXT2FS_COMPRESSED_BLKADDR.
  pass1b.c (process_pass1b_block, delete_file_block, clone_file_block):
  pass2.c (deallocate_inode_block): Use HOLE_BLKADDR to check to see if
  	the block can be skipped.
ChangeLog, Makefile.in:
  Makefile.in: Exclude the internationalization files from being
  	distributed.
ChangeLog, configure, configure.in:
  configure.in: Add support for --enable-compression.  This is
  	experimental code only for now, which is why it's under --enable test.
  	Once it's stable, it will always be compiled in.
TODO:
  Commit additional TODO items.
2000-02-11 15:55:07 +00:00
Theodore Ts'o 4ee4ad3757 ChangeLog:
util.c: Make resource tracking message more concise.
2000-02-08 23:22:19 +00:00
Theodore Ts'o 80c5d7e45f ChangeLog, e2fsck.h, pass1.c, pass1b.c:
e2fsck.h:
  pass1.c (mark_table_blocks, e2fsck_pass1): Remove
  	ctx->block_illegal_map, since it's not needed by pass1, and pass1b has
  	been modified to calculate it manually if needed.  This reduces the
  	memory footprint needed by e2fsck.
  pass1b.c (check_if_fs_block): New static function which returns
  	whether or not a block overlaps with filesystem metadata.  This
  	replaces consulting the block_illegal_map bitmap.
util.c:
  Make resource tracking message more concise.
2000-02-08 23:19:32 +00:00
Theodore Ts'o 28ffafb09c ChangeLog, bitops.h:
bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
  	ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
  	ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap): Change to
  	return the previous state of the bit that is being marked or unmarked.
  	For speed optimization.
ChangeLog, pass3.c:
  pass3.c (check_directory): Only do the loop detection algorithm if
  	we've searched over 2048 parent directories and haven't found the end
  	yet.  This means that in the common case, we don't allocate or clear
  	the inode_loop_detection bitmap, which for large systems, merely
  	clearing the bitmap for each directory was turning out to be quite
  	expensive.  Thanks to Jani Jaakkola (jjaakkol@cs.helsinki.fi) for
  	identifying this problem.
ChangeLog, Makefile.in, e2fsck.h, unix.c:
  Makefile.in: Call sync after finishing building all in this directory.
  unix.c (PRS): sync the filesystem before trying to use BLKFLSBUF, to
  	minimize the chance of causing dirty blocks to get dropped.
  e2fsck.h: Manually define BLKFLSBUF if not defined, and we're on a
  	Linux/i386 system.
2000-02-08 19:14:02 +00:00
Theodore Ts'o 0c4a07264e Many files:
badblocks.c, e2fsck.h, ehandler.c, emptydir.c, extend.c, flushb.c,
  	iscan.c, message.c, pass1.c, pass1b.c, pass3.c pass4.c, pass5.c,
  	problem.c, scantest.c, swapfs.c, unix.c, util.c: Add
  	Internationalization support as suggested by Marco d'Itri
  	<md@linux.it>.
2000-02-07 03:11:03 +00:00
Theodore Ts'o 80e808fceb ChangeLog, debugfs.c:
debugfs.c (dump_inode): Remove #ifdef for i_version vs. i_generation
  	since we know it will always be i_generation now.
ChangeLog, e2fsck.h, flushb.c, scantest.c:
  e2fsck.h, flushb.c, scantest.c: Remove uneeded include of linux/fs.h
bmap.c:
  Fix silly spelling typo.
ChangeLog, getsize.c, ismounted.c, swapfs.c:
  getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
  swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not needed
  	any more; we know it will always be i_generation.  Add support for
  	swapping the high bits of the uid and gid.
2000-02-02 16:19:59 +00:00
Theodore Ts'o 894edb2eaf ChangeLog, Makefile.in:
Makefile.in: Since LIBUUID can sometimes include "-lsocket" we need a
  	separate DEPLIBUUID that can be used in Makefile's dependency rules.
2000-01-18 21:27:12 +00:00
Theodore Ts'o a1ccadb4ad ChangeLog, e2fsck.8.in:
e2fsck.8.in: Update language about where to find a backup superblock.
1999-11-23 13:57:16 +00:00
Theodore Ts'o 86a63e92eb ChangeLog, pass1.c:
pass1.c (process_inodes): Add shortcut handling; if
  	process_inodes_count is zero, return right away, to avoid calling
  	qsort with a non-positive count.
1999-11-23 13:52:48 +00:00
Theodore Ts'o ec8d2c3f6e ChangeLog, message.c:
message.c (safe_print): Fix to properly display ^A, ^B, etc. and to
  	print Delete as ^?
1999-11-19 18:52:36 +00:00
Theodore Ts'o 5c36a2f85b ChangeLog, Makefile.in:
Makefile.in (distclean): Remove TAGS and Makefile.in.old from the
  	source directory.  Also, when making the .exclude file for the
  	source_tar_file, exclude those two files as well.
  Makefile.in (distclean): Remove TAGS and Makefile.in.old from the
  	source directory.
1999-11-19 18:42:30 +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 a846d2f499 ChangeLog, problem.c, problemP.h:
problem.c (fix_problem): Support a new flag, PR_PREEN_NO which means
  	the answer is assumed to be no in preen mode.  This is now used in the
  	PR_1_SET_IMMUTABLE code, so that in preen mode we ignore these inodes
  	and just print a warning message.
1999-11-10 15:50:24 +00:00
Theodore Ts'o 6fdc7a325c ChangeLog, e2fsck.h, pass1.c, pass2.c, pass3.c, problem.c, problem.h, util.c:
pass1.c (e2fsck_pass1): If the filesystem does not support imagic
  	inodes, if an inode has the imagic flag set, offer to clear the imagic
  	flag.  If a valid device/fifo/socket has the immutable flag set, call
  	the new helper function check_immutable() to offerto clear the
  	immutable flag.
  pass2.c (check_filetype): Use the new ext2_file_type() helper function
  	instead of calculating the file_type information manually.
  pass3.c (e2fsck_reconnect_file): When adding a link to lost+found,
  	calculate the filetype information so that ext2fs_link() can use the
  	information if applicable.  (get_lost_and_found): Create the
  	/lost+found directory with the correct filetype information if
  	applicable.
  util.c (ext2_file_type), e2fsck.h: New function which returns the
  	directory entry file type information given the inode's mode bits.
  problem.c, problem.h: Added new problem codes PR_1_SET_IMAGIC and
  	PR_1_SET_IMMUTABLE.
ChangeLog, mke2fs.8.in:
  mke2fs.8.in: Update manual page so that the sparse_option filesystem
  	option is properly named.
1999-11-10 13:34:40 +00:00
Theodore Ts'o 7142db08c4 ChangeLog, e2fsck.c, pass4.c, problem.h, unix.c:
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-11-08 18:46:54 +00:00
Theodore Ts'o 28e1194e65 Many files:
Update for 1.17 release.
1999-10-26 18:17:20 +00:00
Theodore Ts'o f68aa41476 ChangeLog, debugfs.c, debugfs.h:
debugfs.h: Add declaration for do_features()
  debugfs.c: Add #incldue of e2p.h to fix gcc warnings.
ChangeLog, message.c:
  message.c (safe_print): Make safe_print take an char instead of an
  	unsigned char to fix gcc warnings.
1999-10-26 14:20:22 +00:00
Theodore Ts'o e6597048d9 ChangeLog, mke2fs.c:
mke2fs.c (PRS): Use __u64 instead of long long for portability
  	reasons.
  	Moved #include of sys/stat.h inside #ifdef HAVE_LINUX_MAJOR_H for
  	portability reasons.
ChangeLog, util.c:
  util.c: For NT portability, don't redefine getchar(), since stdio
  	defines that.  Instead we introduce a new abstract macro read_a_char()
  	which is #defined to the right function as necessary.
1999-10-26 02:30:16 +00:00
Theodore Ts'o c40db6d571 ChangeLog, pass2.c, problem.c, problem.h:
problem.c, problem.h (PR_2_NULL_NAME): Add new problem code.
  pass2.c (check_dir_block): Require that the length of the directory
  	entry be at least 12 bytes.  Check to see if the filename is
  	zero-length, and flag that as an error.
1999-10-25 21:03:34 +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 7847c1d4ff ChangeLog, pass2.c, problem.c, problem.h:
pass2.c (check_filetype): If the filetype filesystem feature is not
  	set, and a directory entry has a dirent feature, offer to clear it
  	(since 2.0 kernels will do complain will interpret it as a very large
  	name length field).
1999-10-22 15:11:42 +00:00
Theodore Ts'o caf8ce4cc4 Many files:
badblocks.8.in, chattr.1.in, dumpe2fs.8.in, e2label.8.in,
  fsck.8.in, lsattr.1.in, mke2fs.8.in, mklost+found.8.in,
  tune2fs.8.in, uuidgen.1.in: Update man page to use a more standard
  	format (bold option flags and italicized variables), as suggested by
  	Andreas Dilger (adilger@enel.ucalgary.ca)
ChangeLog, e2fsck.8.in:
  e2fsck.8.in: Update man page to use a more standard format (bold
  	option flags and italicized variables), as suggested by Andreas Dilger
  	(adilger@enel.ucalgary.ca)
ChangeLog, uuid_generate.3.in:
  uuid_generate.8.in: Update man page to use a more standard format
  	(bold option flags and italicized variables), as suggested by Andreas
  	Dilger (adilger@enel.ucalgary.ca)
1999-10-21 19:56:34 +00:00
Theodore Ts'o aa4115a47c Many files:
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
1999-10-21 19:33:18 +00:00
Theodore Ts'o 78cf05478d ChangeLog, super.c:
super.c (check_super_block): Check to see whether the inodes_per_group
  	value in the superblock is insanely too high.
1999-10-20 18:29:18 +00:00
Theodore Ts'o 9ecd8becf4 ChangeLog, unix.c, util.c:
unix.c (PRS), util.c (ask_yn): Add #ifdef's to make e2fsprogs easier
  	to port to non-Unix platforms.
1999-10-20 18:24:31 +00:00
Theodore Ts'o c1faf9cc3a ChangeLog, pass1b.c:
pass1b.c (clone_file_block): Don't clear the dup_map flag if the block
  	also shares data with the fs metadata when the count drops to 1, since
  	the block should still be cloned, as fs metadata isn't included in the
  	count.
ChangeLog, pass3.c:
  pass3.c (adjust_inode_count): Fix bug where we didn't keep the
  	internal and external inode counts in sync when we decremented an
  	inode whose link count was already zero.  Now we skip incrementing or
  	decrementing both link counts if we would cause an overflow condition.
  	(expand_dir, expand_dir_proc): Change where we update the inode block
  	count and size files so that the block count field is updated
  	correctly when we create an indirect block.
1999-09-14 20:00:54 +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 b55199eaf7 ChangeLog, unix.c:
unix.c (usage): Add minimalist emergency help to the usage message.
1999-07-19 15:37:46 +00:00
Theodore Ts'o 5596defa1e Many files:
unix.c: Add support for calculating a progress bar if the -C0 option
  	is given.  The function e2fsck_clear_progbar() clears the progress bar
  	and must be called before any message is issued.  SIGUSR1 will enable
  	the progress bar, and SIGUSR2 will disable the progress bar.  This is
  	used by fsck to handle parallel filesystem checks.  Also, set the
  	device_name from the filesystem label if it is available.
  e2fsck.h: Add new flags E2F_FLAG_PROG_BAR and E2F_FLAG_PROG_SUPRESS.
  	Add new field in the e2fsck structure which contains the last tenth of
  	a percent printed for the user.
  message.c (print_e2fsck_message): Add call to e2fsck_clear_progbar().
  pass1.c (e2fsck_pass1):
  pass2.c (e2fsck_pass2):
  pass3.c (e2fsck_pass3):
  pass4.c (e2fsck_pass4):
  pass5.c (e2fsck_pass5): Add call to e2fsck_clear_progbar when printing
  	the resource tracking information.
  pass5.c (check_block_bitmaps, check_inode_bitmaps): If there is an
  	error in the bitmaps, suppress printing the progress bar using the
  	suppression flag for the remainder of the check, in order to clean up
  	the display.
1999-07-19 15:27:37 +00:00
Theodore Ts'o c54b3c3c99 ChangeLog, pass3.c:
Fix some stupid spelling typo's.
ChangeLog:
  Fix e-mail address.
1999-07-03 07:20:06 +00:00
Theodore Ts'o 7403335006 ChangeLog, unix.c:
unix.c (check_mount): Clean up the abort message displayed when the
  	filesystem is mounted and either stdout or stdin isn't a tty.
1999-07-01 03:00:47 +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 813bbb25a2 ChangeLog, dir_iterate.c:
dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
  	directory entry before calling the callback function.  This should
  	prevent some core dumps of insufficiently paranoid callback functions.
ChangeLog, unix.c:
  unix.c (main): Add missing space in the disk write-protected message.
1999-06-22 03:17:45 +00:00
Theodore Ts'o d4b0ce0316 ChangeLog, problem.c, problem.h, super.c:
problem.c, problem.h (PR_0_INODE_COUNT_WRONG): Add new problem code.
  super.c (check_super_block): Add check to make sure the total number
  	of inodes is sane, since this can be calculated from the number of
  	groups times the number of inodes per group.  Offer to correct it if
  	it is incorrect.
1999-06-18 01:09:29 +00:00
Theodore Ts'o e79d1b23ed ChangeLog, pass5.c:
pass5.c (check_block_end): Fix fencepost condition where when clearing
  	the block padding we were missing the last position in the bitmap.
1999-06-18 01:06:59 +00:00
Theodore Ts'o 75d83bec5f unix.c, ChangeLog:
unix.c (reserve_stdio_fds): Add safety check in case reserve_stdio_fds
  	couldn't open /dev/null.
1999-05-18 03:16:36 +00:00
Theodore Ts'o 4a9f59366b ChangeLog, pass3.c, problem.c, problem.h, util.c:
util.c (print_resource_track): Use mallinfo if present to get more
  	accurate malloc statistics.
  pass3.c (get_lost_and_found): Check to see if lost+found is a plain
  	fail; if so, offer to unlink it.
  problem.c, problem.h (PR_3_LPF_NOTDIR): Add new problem code.
  problem.c: Fix problem message for PR_1_BAD_GROUP_DESCRIPTORS so that
  	the block group number is printed.  Add new prompt, PROMPT_UNLINK.
1999-03-16 19:32:52 +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 73f17cfc39 ChangeLog, unix.c:
unix.c (main): Reset the context before calling ext2fs_close(), to
  avoid referencing already freed memory.
ChangeLog, llseek.c:
  llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the non-Linux case
  	to use EINVAL by default, unless it isn't defined, in which case we
  	use EXT2_ET_INVALID_ARGUMENT instead.
ChangeLog, mk_cmds.sh.in:
  mk_cmds.sh.in: Fixed portability bug in shell script; we were
  	depending on a bash'ism.
ChangeLog, uuid.c:
  uuid.c: Use asm/types.h instead of linux/types.h, to be consistent
  	with other locations where we've had to do this to work around glibc.
1999-01-04 07:35:45 +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 5a679c8fb1 ChangeLog, pass3.c, problem.c:
pass3.c (get_lost_and_found): If the filesystem is not opened
  	read-only, then force /lost+found to be created if it is not present.
  problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen operation.
ChangeLog, Makefile.in:
  Makefile.in: Updated dependencies.
ChangeLog, fsck.c:
  fsck.c (load_fs_info): Parse /etc/fstab ourselves, instead of relying
  	on getmntent().  This has the advantage of allowing us to properly
  	handle missing pass numbers correctly.
ChangeLog, configure.in:
  configure.in: Add paths.h to header files for which we search.
1998-12-03 16:40:38 +00:00
Theodore Ts'o 1dde43f0c1 ChangeLog, mke2fs.c, tune2fs.8.in:
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-11-14 04:18:28 +00:00
Theodore Ts'o 7f813ba337 ChangeLog, pass3.c, pass4.c, problem.c, problem.h, super.c:
problem.c: Add PR_3_NO_DIRINFO error code.
  super.c (check_super_value): Rename min and max to min_val and max_val
  	to avoid possible cpp macro conflicts.
  pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid possible cpp
  	macro conflicts.
  pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible cpp
  	macro conflicts.
  	(check_directory): Fix logic to avoid possible core dump in the
  	case of ext2fs_get_dir_info returning NULL.  (By the time we get here,
  	it should never happen, but...).  Also simply/streamline the control
  	flow of the function.
1998-09-03 01:26:03 +00:00
Theodore Ts'o 24fc5032b5 ChangeLog, unix.c:
unix.c (check_if_skip): Move the "not cleanly mounted" check ahead of
  	the maximal mount and too long since checked tests.
  (reserve_stdio_fds): Make sure 0,1,2 file descriptors are open, so
  	that we don't open the filesystem using the same file
  	descriptor as stdout or stderr.
1998-08-26 15:23:31 +00:00
Theodore Ts'o f75c28de47 ChangeLog, e2fsck.c, pass2.c, pass3.c, unix.c:
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-08-01 04:18:06 +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 8144d67995 ChangeLog, unix.c:
unix.c (main): Fix typo in checking the incompat feature set; it
  	should be checked against EXT2_LIB_FEATURE_INCOMPAT_SUPP.
1998-07-09 05:33:18 +00:00
Theodore Ts'o 1fad9048b5 ChangeLog, badblocks.c:
badblocks.c (test_disk): Don't clear the existing bad blocks list when
  	using e2fsck -c, since it may cause blocks with marginal errors to be
  	dropped from the bad blocks list.
1998-07-07 05:44:43 +00:00
Theodore Ts'o 874b4d262e ChangeLog, pass1.c:
pass1.c (e2fsck_pass1): Use ext2fs_sb structure for compatibility with
  	older kernels.
1998-07-06 14:33:12 +00:00
Theodore Ts'o 818180cdfc ChangeLog, debugfs.8.in, debugfs.c:
Add a -V option which displays the current version.
ChangeLog, unix.c:
  unix.c (e2fsck_update_progress): Remove unused variables.
ChangeLog, inode.c:
  inode.c (get_next_blockgroup): Fix bug where if get_next_blockgroup()
  	is called early because of a missing inode table in a block group, the
  	current_inode counter wasn't incremented correctly.
ChangeLog, tst_uuid.c:
  tst_uuid.c (main): Fixed bogus declaration of the main's argv parameter.
ChangeLog, test_icount.c:
  test_icount.c (main): Fix main() declaration so that it returns int,
  	not void.
Many files:
  fsck.c (ignore): Remove unused variable cp.
  chattr.c (fatal_error):
  tune2fs.c (usage):
  lsattr.c (usage):
  dumpe2fs.c (usage):
  badblocks.c (usage): Remove volatile from declaration.
  fsck.c: Change use of strdup to be string_copy, since we don't trust
  	what glibc is doing with strdup.  (Whatever it is, it isn't pretty.)
1998-06-27 05:11:14 +00:00
Theodore Ts'o 9d1bd3de8d ChangeLog, pass1.c, problem.h:
pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
  collision with LFS API.
  pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is properly
  	initialized.
  (e2fsck_pass1): Don't allow the the boot loader inode to be a
  	directory (clear the inode mode field if so).
1998-06-10 20:45:22 +00:00
Theodore Ts'o efac9a1b8d ChangeLog, e2fsck.8.in, e2fsck.h, pass5.c, unix.c:
unix.c (PRS): Added new option -C, which causes e2fsck to print
  	progress updates so that callers can keep track of the completion
  	progress of e2fsck.  Designed for use by progress, except for -C 0,
  	which prints a spinning report which may be useful for some users.
  pass5.c (e2fsck_pass5): Use a finer-grained progress reporting scheme
  	(useful for larger filesystems).
  e2fsck.h: Add progress_fd and progress_pos, for use by the Unix
  	progress reporting functions.
1998-05-07 05:02:00 +00:00
Theodore Ts'o 4c77fe50d9 ChangeLog, e2fsck.h, pass1.c, super.c:
pass1.c (process_inode_cmp): Use EXT2_QSORT_TYPE to define the
  	appropriate return type for comparison functions for qsort.
  e2fsck.h: Add #ifdef protection for unistd.h
  super.c: Remove header files already included by e2fsck.h
ChangeLog, dblist.c, ext2fs.h:
  ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the return type for
  	comparison functions for qsort.
  dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function declaration.
ChangeLog, extent.c:
  extent.c (ext2fs_create_extent_table): Use ext2fs_free_mem instead of
  	free().
  (extent_cmp): Use EXT2_QSORT_TYPE to define the appropriate return
  	type for comparison functions for qsort.
1998-04-30 17:35:59 +00:00
Theodore Ts'o 76f875daa1 Many files:
ext2fs.h, bitops.h: Add support for the Watcom C compiler to do inline
  	functions.
  ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to evade a
  	potential problem with glibc's header files trying to spike out
  	linux/types.h.
  ext2fs.h (ext2fs_resize_mem): Change the function prototype to include
  	the old size of the memory, which is needed for some braindamaged
  	memory allocation systems that don't support realloc().
  badblocks.c (ext2fs_badblocks_list_add):
  bb_inode.c (clear_bad_block_proc):
  dblist.c (ext2fs_add_dir_block):
  icount.c (insert_icount_el):
  irel_ma.c (ima_put):
  rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to pass
  	the old size of the memory to be resized to ext2fs_resize_mem().
ChangeLog, dirinfo.c:
  dirinfo.c (e2fsck_add_dir_info): Update function to pass the old size
  	of the memory to be resized to ext2fs_resize_mem().
ChangeLog, extent.c, resize2fs.c:
  resize2fs.c (adjust_superblock):
  extent.c (ext2fs_add_extent_entry): Update functions to pass the old
  	size of the memory to be resized to ext2fs_resize_mem().
1998-04-27 01:41:13 +00:00
Theodore Ts'o 7e44f24237 ChangeLog, Makefile.in:
Change to use new installation directory variables convention.  Fix
  uninstall rules to take $(DESTDIR) into account.  Remove cat8dir and
  cat1dir from the installdirs target, since modern man package don't
  necessarily put the cat directory in /usr/man/cat?.
  Makefile.in: Change to use new installation directory variables
  	convention.  Fix uninstall rules to take $(DESTDIR) into account.
  	Remove cat8dir from the installdirs target, since modern man package
  	don't necessarily put the cat directory in /usr/man/cat?.
  Change to use new installation directory variables convention.  Fix
  installdirs and uninstall rules to reflect the fact that debugfs has
  been installed in the root filesystem.  Fix uninstall rules to take
  $(DESTDIR) into account.
1998-04-01 03:16:29 +00:00
Theodore Ts'o 17dba281a0 ChangeLog, e2fsck.h, pass4.c, super.c:
super.c, e2fsck.h: Always declare e2fsck_get_device_size() as an
  	extern in e2fsck.h to prevent -Wall warnings.
  pass4.c (e2fsck_pass4): Remove unused variable 'j'.
  super.c (check_super_block): Fix broken superblock sanity check when
  	calculating blocks_per_group if s_log_frag_size != s_log_block_size.
  	Since we don't support fragments, this isn't a bug deal, but it's good
  	to get it fixed.
ChangeLog, Makefile.elf-lib:
  Makefile.elf-lib (installdirs): Change use of DLL_INSTALL_DIR to
  	ELF_INSTALL_DIR.  (Doesn't make a difference currently, but it's
  	correct this way.)
ChangeLog, fgetversion.c, getversion.c:
  getversion.c (getversion): Return 0 if there's no error.
  fgetversion.c (fgetversion): Pass the address of the temporary
  	variable instead of the unitialized variable to the
  	EXT2_IOC_GETVERSION ioctl.
1998-03-30 01:16:26 +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 b6f7983197 ChangeLog, message.c, pass2.c, pass3.c:
Mask off the high eight bits of the directory entry's name_len field,
  so that it can be used for other purposes.
1998-03-09 13:10:37 +00:00
Theodore Ts'o 2df1f6aa07 ChangeLog, e2fsck.c, e2fsck.h, pass1.c:
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-27 05:03:48 +00:00
Theodore Ts'o a02ce9df5f Many files:
Change the progress function to return an integer; if returns 1, then
  the progress function is expected to have set the e2fsck context flag
  signalling a user abort, and the caller should also initiate a user
  abort.
1998-02-24 20:22:23 +00:00
Theodore Ts'o 63c4969c54 ChangeLog, pass5.c:
pass5.c (check_block_bitmaps, check_inode_bitmaps): Don't call
  	end_problem_latch() unless there was actually a problem latched.
  	Simplifies semantics of the latch processing.
1998-02-20 05:24:59 +00:00
Theodore Ts'o 4313932cd7 ChangeLog, e2fsck.8.in, e2fsck.h, pass3.c, pass4.c, super.c:
e2fsck.h: Add new field, priv_data to the e2fsck context structure.
  	It should be used by callers of the e2fsck functions only, and not by
  	anything in e2fsck itself.
  super.c: Instead of call ext2fs_get_device_size(), define and call
  	e2fsck_get_device_size().  (This function may be stubbed out in
  	special versions of e2fsck.)
  pass3.c, pass4.c: Remove extra calls to the progress function that
  	weren't needed.
  mke2fs.8.in: Update man page to note that the format of the bad block
  	file is the same as the one generated by badblocks.
1998-02-16 22:34:46 +00:00
Theodore Ts'o 54be2ccc22 ChangeLog, dirinfo.c, e2fsck.c, e2fsck.h, super.c:
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.
1998-02-01 12:58:48 +00:00
Theodore Ts'o 24dd4028eb ChangeLog, e2fsck.8.in, unix.c:
unix.c (main): In the case where the filesystem revision is too high,
  	print the message about the superblock possibly being corrupt.
  e2fsck.8.in: Add expanded comments about how the -b option works.
1998-02-01 00:16:40 +00:00
Theodore Ts'o 54dc7ca286 Many files:
e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
  	the ext2-specific header files are in a flat directory.
  dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
  	super.c, swapfs.c, unix.c: Explicitly cast all assignments
  	from void * to be compatible with C++.
  unix.c (sync_disk): Remove sync_disk and calls to that function,
  	since ext2fs_close() now takes care of this.
  pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
  	ehandler.c, unix.c: Change use of private to be priv_data, to
  	avoid C++ reserved name clash.
1998-01-19 14:50:49 +00:00
Theodore Ts'o 5be8dc2143 Many files:
dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more paranoid
  	about validating the directory counts from the block group
  	information.
  all files: Don't include stdlib.h anymore; include it in ext2_fs.h,
  	since that file requires stdlib.h
ChangeLog, Makefile.in, dirinfo.c:
  dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead of
  	e2fsck_get_num_dirs, which has been removed.
  Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want to
  	compile and install flushb.
ChangeLog, configure.in:
  Remove @EXTRA_PROGS@, since we aren't using it in 2fsck/Makefile.in anymore
ChangeLog, Makefile.in:
  Install debugfs in /sbin, instead of /usr/sbin.
libext2fs.texinfo:
  Update version string to be 1.12
Makefile.in:
  Fix bug in find script which made the exclusion list, where a '-' was
  missing from an -name option.
1997-12-01 18:24:10 +00:00
Theodore Ts'o 7fdfabd321 ChangeLog, pass1.c, util.c:
pass1.c (e2fsck_pass1_check_device_inode): For now, only check to make
  	sure the extra i_blocks in a device are cleared if the immutable flag
  	is set.
  util.c (print_resource_track): Fix typo which caused the time/resource
  	tracking to print "Pass 1 :" instead of "Pass 1: ".
version.h:
  Change version to 1.12-WIP, in preparation for an e2fsprogs 1.12 release.
1997-11-24 11:51:17 +00:00
Theodore Ts'o b8647faa3b ChangeLog, pass3.c:
Fix bug which could cause core dump when expanding the directory, and
  the bitmaps hadn't yet been read in.  Also, only use
  ext2fs_write_dir_block when writing a directory block, not when
  writing out a fresh indirect block.
1997-11-20 21:52:43 +00:00
Theodore Ts'o 8039c4802f ChangeLog, pass1.c:
Fix bug where first_block wasn't getting incremented, which caused
  user to get a "Programming error?" warning if there was a bad block in
  a non-primary superblock/group_descriptor.  Also fixed another bug so
  that ext2fs_bg_has_super() is consulted, to avoid problems when using
  a filesystem with the sparse_groups option set and there are bad
  blocks at the beginning of a group which doesn't have a superblock.
1997-11-19 21:39:13 +00:00
Theodore Ts'o f8188fff23 Many files:
pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the progress
  	indicator function.
  pass1.c (scan_callback): Add call to the progress feedback function
  	(if it exists).
  super.c (check_super_block): Skip the device size check if the
  	get_device_size returns EXT2_EXT_UNIMPLEMENTED.
  iscan.c (main): Don't use fatal_error() anymore.
  pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of calling
  	fatal_error(0).
  problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
  	PR_3_NO_ROOT_INODE_ABORT): New problem codes.
  problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
  problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
  problemP.h: New file which separates out the private fix_problem data
  	structures.
  util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
  	swapfs.c util.c: allocate_memory() now takes a e2fsck context as its
  	first argument, and rename it to be e2fsck_allocate_memory().
problemP.h:
  New file which contains the private problem abstraction definitions.
Makefile.pq:
  Remove include of MAKEFILE.STD, which doesn't exist at this point.
1997-11-14 05:23:04 +00:00
Theodore Ts'o 6822754243 ChangeLog, unix.c:
Add a special case check for the error code EROFS and display an
  appropriate error message for this case.
1997-11-04 04:25:22 +00:00
Theodore Ts'o 08b213017f Many files:
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-11-03 19:42:40 +00:00
Theodore Ts'o 291c9049ba ext2fs.h, ext2_err.et.in, ChangeLog, pass1.c, pass3.c:
Rename new error codes to _ET_ in them for consistency.
ChangeLog, et_c.awk, et_h.awk:
  Remove support for non STDC compilers, since the workarounds caused
  problems with the header file.
Makefile.pq:
  Checkpoint of powerquest work.
1997-10-31 06:17:08 +00:00
Theodore Ts'o c555aebde4 Many files:
alloc.c (ext2fs_alloc_block): New function which allocates a
  	block and updates the filesystem accounting records
  	appropriately.
  ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
  	EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL, EXT2_INODE_ALLOC_FAIL,
  	EXT2_NOT_DIRECTORY
  Change various library files to use these functions instead of EINVAL,
  ENOENT, etc.
ChangeLog, pass1.c, pass3.c:
  pass3.c (get_lost_and_found): Check error return of
  	EXT2_FILE_NOT_FOUND instead of ENOTDIR
  pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY instead of
  	ENOTDIR
expect.icount:
  Change expected error string to be "Invalid argument passed to ext2 library"
  instead of just "Invalid argument"
1997-10-25 04:16:53 +00:00
Theodore Ts'o 519149fb45 Many files:
fsck.c:
  chattr.c: Remove #include of getopt.h, since it's not needed.
  tune2fs.c (main):
  lsattr.c (main):
  badblocks.c (main):
  dumpe2fs.c (main):
  mke2fs.c (PRS): Make the variable which getopt returns into be
  	an int, so that it won't lose on platforms where char is
  	unsigned.
ChangeLog, unix.c:
  Make the variable which getopt returns into be an int, so that it
  won't lose on platforms where char is unsigned.
1997-10-25 03:49:49 +00:00
Theodore Ts'o 622f5f272d ChangeLog, pass1b.c:
Fix bug in error reporting in the case where cs.errcode is non-zero.
1997-10-24 04:18:21 +00:00
Theodore Ts'o 8bf191e866 Many files:
Place #ifdef RESOURCE_TRACK around code which uses init_resource_track
  and print_resource_track.  (Not all systems have timeval)
1997-10-20 01:38:32 +00:00
Theodore Ts'o b2da22d14b ChangeLog, e2fsck.h, super.c:
super.c: Remove excess #includes which are not necessary.
  e2fsck.h: Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H
1997-10-20 01:16:35 +00:00
Theodore Ts'o 1b6bf1759a Many files:
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-10-03 17:48:10 +00:00
Theodore Ts'o 7cf73dcd3d ChangeLog, e2fsck.h, message.c, pass1.c, pass2.c, problem.c, problem.h:
message.c: Add compression for the word "Illegal"
  problem.c: Added entries for PR_2_BAD_CHAR_DEV and PR_2_BAD_BLOCK_DEV
  pass1.c (pass1, check_device_inode), pass2.c (process_bad_inode): Use
  	a more stringent test for a valid device.
ChangeLog, Makefile.in:
  Makefile.in (install): Fix rm command to use $(DESTDIR) appropriately.
1997-08-14 17:17:16 +00:00
Theodore Ts'o a47b66ee09 ChangeLog, error_message.c, error_table.h, et_name.c:
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-08-10 23:02:21 +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 da2e97f7cf ChangeLog, pass1.c, problem.c:
pass1.c (mark_table_blocks): Mark the superblock and group descriptor
  	blocks first, so that any conflicts between these and the bitmap or
  	inode table blocks is noticed.
  problem.c: Fix message printed out when a block or inode bitmap
  	conflicts with other fs data, has the correct group number in it.
1997-06-12 04:28:07 +00:00
Theodore Ts'o 7ac02a5ebd ChangeLog, pass2.c:
Check the error return from ext2fs_dblist_iterate.
1997-06-11 18:32:35 +00:00
Theodore Ts'o 583ccdc32d Many files:
Fix minor typos and grammer oops found by Bill Hawes (whawes@star.net).
1997-05-09 03:06:31 +00:00
Theodore Ts'o f635d7f65b ChangeLog, mke2fs.c, badblocks.c:
Pass the blocksize to the bad blocks command so that all of the
  filesystem gets tested in the case where the blocksize 2048 or 4096.
ChangeLog, badblocks.c:
  Fix bug where ext2fs_badblocks_list_test would test the list (and
  exceed array boundaries) if there were no bad blocks on the bad blocks
  list.  (Showed up when user tried: mke2fs -c -b 4096).
1997-05-09 02:50:16 +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 21c84b71e2 Many files:
Checked in e2fsprogs-1.07
1997-04-29 16:15:03 +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 297f47a13e Many files:
Checked in e2fsprogs 1.01.
1997-04-26 14:25:20 +00:00
Theodore Ts'o 50e1e10fa0 Many files:
Checked in e2fsprogs 0.5c
1997-04-26 13:58:21 +00:00
Theodore Ts'o f3db3566b5 Many files:
Checkin of e2fsprogs 0.5b
1997-04-26 13:34:30 +00:00