Commit Graph

276 Commits (f122632e6bb8a51126da2c71bdb95fbcb52f51bc)

Author SHA1 Message Date
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
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 4c27e6dd1b pass1.c:
Change "long long" to be __s64
1998-03-28 06:44:38 +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 7aec6e061d Makefile.pq:
Add dirinfo.obj to the list of files to compile.
1997-11-04 00:26:14 +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 7668d9b590 Makefile.in:
Don't include the Makefile.pq and the powerquest directories in the tar file.
Makefile.pq:
  Initial version of powerquest-special makefile
1997-10-20 01:23:07 +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 d40259fd55 Many files:
Rename io.h to be ext2_io.h (avoid namespace collisions)
ChangeLog, resize2fs.h:
  Add #ifdef's for HAVE_SYS_TYPES_H and HAVE_SYS_TIME_H.
1997-10-20 00:44:26 +00:00
Theodore Ts'o 44339bdff8 Many files:
Use new substitution technology which doesn't depend on shell scripts.
  (Faster, and better for MS-DOS port!)
1997-10-15 02:47:20 +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
Theodore Ts'o 3839e65723 Many files:
Checkin of e2fsprogs 0.5b
1997-04-26 13:21:57 +00:00