Commit Graph

514 Commits (793e27df7312d5b217c172387f71fd581ed30c82)

Author SHA1 Message Date
Theodore Ts'o dd018f5aa4 ChangeLog, badblocks.8.in, badblocks.c:
badblocks.c: Fix non-destructive read/write patches from David
  	Beattie.  Non-standard variable-length automatic arrays removed.
  	Non-destrutive write test fixed so that logic is clearer and more
  	provably correct.  (I believe the old code had a bug where the disk
  	data wasn't restored if it was interrupted at the wrong time.)
  badblocks.8.in: Document new options in man page.
2000-02-06 23:57:07 +00:00
Theodore Ts'o 0a617317ee ChangeLog, main.c, resize2fs.h:
resize2fs.h: Remove unneeded #include of linux/fs.h
  main.c: Fix gcc -Wall bug.  main() should return an int.
2000-02-02 19:14:36 +00:00
Theodore Ts'o b4ee1fb28e ChangeLog, fsck.c, mke2fs.c, partinfo.c:
fsck.c (interpret_device): If there was an attempt to interpret a
  	device specification of the type "UUID=" or "LABEL=", and it fails,
  	check to see if /proc/partitions is readable.  If not, print a warning
  	message about /proc perhaps not being mounted, and exit.
  mke2fs.c (check_plausibility): Remove unneeded #include of linux/fs.h.
  	Add #define of MAJOR if necessary.
  partinfo.c: Remove unneeded #include of linux/fs.h
2000-02-02 19:08:51 +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 73ae2d4a23 ChangeLog, configure, MCONFIG.in, configure.in:
MCONFIG.in: Always include src/include in the include path now.  This
  	forces us to use our internally provided ext2_fs.h file, for sanity's
  	sake.
  configure.in: If linux/fs.h isn't found, then add build/include into
  	the include path only, since src/include is now always included.
  	Removed define of HAVE_LINUX_FS_H, since we're not using it any more.
  	Removed i_version vs. i_generation check, since with the included
  	header file it is a permanently known quantity.  Removed AC_C_CROSS
  	since it has been merged into AC_PROG_CC in autoconf 2.13.
2000-02-02 16:13:14 +00:00
Theodore Ts'o 41a817eb13 .del-ext2_fs.h~7a460879, ChangeLog:
ext2_fs.h: Update to use header file from Linux 2.3.39.  (Changes from
  	kernel header file: Use asm/types.h instead of linux/types.h, and the
  	__GNU__ versus __hurd__ #ifdef change, with the FSF irrationality
  	failsafe.  See 1999-10-25 Changelog.)
2000-02-02 16:06:35 +00:00
Theodore Ts'o 582134cccf ChangeLog, tune2fs.c:
tune2fs.c (usage): Update the usage message to correctly document the
  	-s option.
2000-01-19 13:26:23 +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 879ac920e3 ChangeLog, badblocks.c:
badblocks.c: Folded in patches David Beattie <dbeattie@usa.net>.  Need
  	to do cleanup before release: use of GCC extensions (dynamic arrays);
  	unclean coding tricks (use of || instead of if statements, etc.).
  	Comments from David Beattie:
  	"I added non-destructive write-testing, and quite a few other
  	features.  The non-destructive write testing, triggered by new "-n"
  	command-line option, will write test patterns to the disk, but only
  	after reading data off the disk into memory.  Then, comparing the test
  	patterns gives a result as to whether or not those sectors are
  	reliable.  Finally, the original data is written back.
  	To streamline this operation, I added another option, "-c
  	blocks_at_once", which will give the number of disk blocks to process
  	at one time (mnemonic--"count").  I made this default to 16 (as in the
  	read-only testing mode), and also affect the read-only testing mode.
  	Of course, read-only mode needs (count * block_size) amount of memory,
  	and non-destructive read-write needs 3 times that much, so it makes
  	sense to do the calculations and not overrun available RAM...I would
  	have liked to implement and auto-memory-usage heuristic, but I have no
  	idea if it's even possible to determine the amount of free memory on a
  	Unix system except by reading /proc entries, and that didn't seem
  	portable.  I did NOT make this blocks_at_once affect the behavior of
  	the test_rw routine, as it is processing the whole disk at once,
  	anyway.
  	I *think* that I got higher detection rates on my hard drive using
  	random test data than patterned test data, so my non-destructive mode
  	initializes its test data buffer randomly.
  	I fixed a typo in flush_bufs that caused the ioctl BLKFLSBUF to never
  	get compiled into the program.
  	Also, I added an "undocumented" (I didn't put it into the usage
  	message; you can if you think it's useful) "-h" option to specify the
  	host device to flush--useful if you want to test out my
  	"non-destructive" code on something other than a hard drive, such as a
  	file on a hard drive, and want the host hard drive to flush.
  	I provided support for an "input" file (via option "-i", similar to
  	the "-o" option)...containing a list of already-known bad blocks; it
  	will skip testing those blocks, thus adding speed to the bad block
  	scan (on my computer, hitting a physically bad block causes a
  	half-second-or-more freeze as the kernel waits for the hard drive to
  	give up and reset itself; pretty annoying when you already know the
  	block is bad from a previous scan).
  	Finally, the real killer, the persistent re-scan (option: "-p
  	num_passes") that I created will, if desired, persistently re-scan the
  	drive until it has completed a user-decidable number of passes in a
  	row during which no new bad blocks are found.  On my drive, I would
  	see behavior that a certain percentage of bad blocks would be found
  	with each pass (it was not reliable in the defective areas!), so I
  	wanted it to check it over and over again until it didn't find any
  	more, several times.  Perhaps this will be useful to others.  Defaults
  	of course to zero, meaning it will stop after the first pass.  I used
  	"-p 2" on my drive, and it ran for 2 1/2 days...then used "-p 3" a
  	couple days later and it ran for a few more hours, and since then the
  	rest of my drive has been completely reliable.
  	Implementation of these last two features, "-i" and "-p", I did using
  	a bb_list from libext2fs.  I debated whether bad blocks input through
  	"-i" should be output into the "-o" file (or stdout, of course), and
  	decided against it, but left the code to do so in place, commented
  	out, just for your information.
  	In order to maintain data integrity upon interruption of a
  	non-destructive-write test, I created a signal handler which I install
  	which will write back whatever original disk data is in the buffers
  	upon any of the fatal signals (except SIGKILL, of course).
  	Of course, ideally, the new options would be reflected in the
  	badblocks manual page, but I am not experienced at manual page
  	modification; if you decide my patch to badblocks should be
  	incorporated into the distribution, I could learn how to update the
  	manpage and other documentation, or you could do it for me after
  	exercising your opinions, if you have any, on exactly what the
  	command-line parameters should be called and which ones should be in
  	the distribution."
2000-01-18 20:59:11 +00:00
Theodore Ts'o e597304ab2 ChangeLog, debugfs.c:
debugfs.c (main): Use return instead of exit at the end to avoid some
  	compiler warnings
2000-01-18 17:58:34 +00:00
Theodore Ts'o 77200f4ed7 ChangeLog, MCONFIG.in:
MCONFIG.in (DEPLIBUUID): Since LIBUUID can sometimes include
  	"-lsocket" we need a separate DEPLIBUUID that can be used in
  	Makefile's dependency rules.
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 17:53:27 +00:00
Theodore Ts'o 3cb7784f30 ChangeLog, Makefile.in, fsck.c:
Really fix the bug where "fsck -As" will actually allow interactive
  	fsck's.  (For those people who like to do interactive fsck's in the
  	/etc/rc scripts!?!)
2000-01-18 16:30:27 +00:00
Theodore Ts'o 7b352e35ad ChangeLog, execute_cmd.c:
execute_cmd.c (ss_execute_line): Fix memory leak; we weren't freeing
  	the argv array.
2000-01-18 16:24:13 +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 bfd2193e52 ChangeLog, tune2fs.8.in:
tune2fs.8.in: Fix man page so that the sparse_super filesystem option
  	is properly named.
1999-11-23 13:48:58 +00:00
Theodore Ts'o 6733c2fd00 ChangeLog, mke2fs.c:
mke2fs.c: Change log2() and log10() to int_log2() and int_log10() to
  	avoid namespace collisions.  Change #ifdef sparc to #ifdef __sparc__.
1999-11-23 02:23:30 +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 dab278af81 ChangeLog, mkdir.c:
mkdir.c (ext2fs_mkdir): Only update the parent's inode link counts if
  	the link was successful.  Patch suggested by jeremy@goop.org.
1999-11-19 18:49:27 +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 4bca5ba90e e2fsprogs.lsm:
Update for 1.18 release.
1999-11-10 18:32:40 +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 24ded091e3 README, RELEASE-NOTES, TODO, e2fsprogs.spec, version.h:
Update for 1.18 release.
1999-11-10 15:56:16 +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 0444e15b34 ChangeLog, run_e2fsck, expect.1, expect.2, image.gz, name, script:
f_imagic: New test case which tests handling of imagic inodes in an
  	non-imagic-enabled filessystem.
  f_imagic_fs: New test case which tests handling of imagic inodes in an
  	imagic-enabled filesystem.
  f_filetype: New test case which tests setting filetype information in
  	a filesystem.  Also tests handling of immutable special files
  	(device/fifo).
  run_e2fsck: Add support for PREP_CMD, which allows a test case to
  	specify some commands which will be run (via eval) after the image is
  	compressed and before running e2fsck.
1999-11-10 13:17:24 +00:00
Theodore Ts'o 9b9fe8ac19 ChangeLog, Makefile.in, badblocks.c, freefs.c, tst_badblocks.c:
Makefile.in (tst_badblocks): Add freefs.o to the object list, since
  ext2fs_badblocks_list_free was moved to freefs.c.
  tst_badblocks.c: Use the newer badblocks API names.  Add duplicate
  	blocks to the test inputs to test dealing with adding blocks which are
  	already in the badblocks list.
  badblocks.c (ext2fs_badblocks_list_add): If appending to the end of
  	the list, use a shortcut O(1) operations instead of an O(n) operation.
  	(Idea suggested by David Beattie.)
  freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead of
  	badblocks_list_free(), to save a procedure call.
1999-11-08 22:05:04 +00:00
Theodore Ts'o 643efb8a79 ChangeLog, icheck.c, ncheck.c:
icheck.c (do_icheck):
  ncheck.c (do_ncheck): If ext2fs_open_inode_scan() returns
  	EXT2_ET_BAD_BLOCK_IN_INODE_TABLE loop to skip over the bad blocks in
  	the inode table.
1999-11-08 19:27:13 +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 6a35ffa0ed ChangeLog, fsck.c:
fsck.c (main): Move setting of the interactive flag to before the call
  	to check_all(), so that people who try to use fsck -As can do so
  	interactively.
1999-11-04 22:34:43 +00:00
Theodore Ts'o b3ee3744c4 ADD TAG: E2FSPROGS-1_17 1999-10-26 18:17:20 +00:00
Theodore Ts'o 28e1194e65 Many files:
Update for 1.17 release.
1999-10-26 18:17:20 +00:00
Theodore Ts'o 3bc036691a ChangeLog, fsck.c:
fsck.c (PRS, device_already_active): Add debugging hook; if the
  	environment variable FSCK_FORCE_ALL_PARALLEL is set, then force all
  	fsck runs to happen in parallel.
1999-10-26 17:17:00 +00:00
Theodore Ts'o 9094f28440 ChangeLog, mke2fs.c:
mke2fs.c (set_fs_defaults): Changed parameter name to avoid gcc
  	warnings.
Makefile.in:
  Update dependency information.
1999-10-26 16:42:50 +00:00
Theodore Ts'o cdceb0496f ChangeLog, subst.c:
subst.c (substitute_line): Removed some unused variables.
1999-10-26 16:28:59 +00:00
Theodore Ts'o 36b0130b1f ChangeLog, get_device_by_label.c:
get_device_by_label.c (has_right_label): Fixed bug where code used a
  	strncmp to compare a binary UUID value which may contain a NULL.
  	Fixed GCC warnings; added const to char * typed variables.  Eliminated
  	non-portable use of u_char.
1999-10-26 14:38:36 +00:00
Theodore Ts'o 4a6005666e ChangeLog, mke2fs.c:
mke2fs.c (PRS): Fix gcc warnings; add const to some char * variables,
  	including in struct mke2fs_defaults.
1999-10-26 14:35:51 +00:00
Theodore Ts'o b5135717e7 ChangeLog, fsck.c:
fsck.c (wait_one): Fix gcc warnings; add #include for ctype.h, add
  	const to char * variables, and use NOARGS to declare functions that
  	take no arguments.  Also fix a memory leak in execute() where we
  	weren't freeing argv[] after forking the child process.
1999-10-26 14:33:24 +00:00
Theodore Ts'o 36caf25f8d ChangeLog, e2p.h, feature.c:
feature.c: Fix GCC warnings; add const to the char * types in the
  	function prototypes for e2p_feature2string and e2p_edit_feature.
ChangeLog, uuid.h, uuid_time.c:
  uuid_time.c (variant_string): Declare to be static to avoid gcc warnings.
  uuid.h: Add function prototypes for uuid_generate_random() and
  	uuid_generate_time().
ChangeLog, chattr.c:
  chattr.c: Add hack to compile in a definition for S_ISLNK so we can
  	successfully compile even with warnings turned on.
1999-10-26 14:29:22 +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 416c93d468 ChangeLog, ext2fs.h:
ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't seem
  	to handle ~0UL the same way as they used to.
1999-10-26 04:49:54 +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 f8bd980703 ChangeLog, configure, configure.in:
configure.in: Move the code that checks for the presence of Linux
  	header files, to earlier in the config file, since it adds a directory
  	to the include path, and that needs to happen before any compile tests
  	are run.
1999-10-26 04:19:45 +00:00
Theodore Ts'o 6c979d5c37 ChangeLog, gen_uuid_nt.c:
gen_uuid_nt.c (uuid_generate): W2K strikes again!  An incompatible
  	interface change means we need to detect whether the code is running
  	on an NT4 or NT5 system.
config.h, ChangeLog:
  config.h: Add #define's for strcasecmp and strncasecmp
1999-10-26 02:50:36 +00:00
Theodore Ts'o 00ab043507 nt_io.c:
Add e-mail address to author's name.
1999-10-26 02:39:02 +00:00
Theodore Ts'o fe70fd33d1 ChangeLog, nt_io.c:
nt_io.c (_OpenNtName): Open the device using
  	FILE_SYNCHRONOUS_IO_NONALERT instead of FILE_SYNCHRONOUS_IO_ALERT
  	(nt_open): At the end of the device open routine, unlock the drive but
  	do not dismount it.
1999-10-26 02:34:47 +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 601002bd2a .del-ext2_fs.h~7a460879, ChangeLog:
ext2_fs.h (i_reserved2): Use __GNU__ instead of __hurd__ to detect the
  	Hurd OS.  To protect against future irrationality on the part of the
  	FSF concerning whether Linux is GNU or not, on a system which defines
  	both __linux__ and __GNU___, __linux__ takes precedence.
ChangeLog, initialize.c:
  initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to detect
  	the Hurd OS.
ChangeLog, debugfs.c:
  debugfs.c (do_dirty_filesys): Make the "dirty" command clear the valid
  	bit on the superblock.  (And with a -clean option to set the valid
  	bit.)  Originally it was used just to set the "needs to be written"
  	bit in the in-core version of the fs structure.
1999-10-26 02:06:39 +00:00
Theodore Ts'o ad6783df0c ChangeLog, fsck.c:
fsck.c (execute): Fix really stupid bug in the linked list management
  	which caused fsck in parallel mode to go into an infinite loop.
ChangeLog, mke2fs.c:
  mke2fs.c (show_stats): Capitalized Hurd to make the GNU types happy.
ChangeLog, configure.in:
  configure.in: Capitalized Hurd to make the GNU folks happy.
1999-10-26 01:58:54 +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