Commit Graph

203 Commits

Author SHA1 Message Date
Theodore Ts'o
8c2dc52180 journal.c:
Fix typo in comment.
2001-01-03 13:14:23 +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
c500767e1b .del-jfs.h~fa6593e8:
Remove unneeded file.
2000-12-18 02:45:32 +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
a917d1ccf4 ChangeLog, closefs.c, ext2fs.h, jump.funcs, super.c:
Rename _ext2fs_update_fs_dynamic_rev to _ext2fs_update_dynamic_rev
2000-12-13 18:36:23 +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
26900ae444 flushb.c, findsuper.c:
Adjust legal language.
2000-12-09 21:46:59 +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
25c63ba09f super.c:
Remember to clear the orphaned inode list before starting to process it.
2000-08-18 15:31:37 +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
415ed79ebc Many files:
Remove generated file.
2000-05-25 23:46:39 +00:00
Theodore Ts'o
7fd86d3967 ChangeLog, getsize.c:
getsize.c: Under linux, manually define the ioctl for BLKGETSIZE if it
  	isn't already defined and it's safe to do so.
.cvsignore:
  Ignore build files when builddir==srcdir
2000-05-25 23:42:22 +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
c81c6ce57e util.c:
Fix stupid bugs in NT portability patch.
ChangeLog, configure, configure.in:
  Add termios.h to the headers which are checked.
1999-10-26 04:28:53 +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
3ac9f0efa1 Makefile.in:
Add flushb to list of files which are removed when doing a make clean.
  Add a distclean production which removes Makefile
  Add the doc substree to the clean and distclean rules.
1999-07-19 21:02:11 +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
6c133523b2 ChangeLog, MCONFIG.in, configure.in, configure:
MCONFIG.in (BUILD_CC):
  configure.in (BUILD_CC): If cross compiling, find the native C
  	compiler and set it to BUILD_CC so that we can successfully build
  	util/subst.
ChangeLog, Makefile.in:
  Makefile.in (subst): Build subst using $(BUILD_CC), since it's a
  	helper program which must be built using the native C compiler during
  	a cross-compilation.
Makefile.in:
  Update dependencies.
1999-07-03 20:37:03 +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