Commit Graph

84 Commits (1917875fcd16428d14eb5a86acf414472bc216f1)

Author SHA1 Message Date
Theodore Ts'o e1a0a3e304 Many files:
chattr.1.in:
  lsattr.1.in: Change "version" to "version/generation number".
  chattr.1.in: Fix stupid file vs filesystem typo.
  tune2fs.c Fix spelling error (spare vs sparse).
  mke2fs.c (PRS): Add safety check to make sure the number of blocks
  	doesn't exceed 32 bits on a 64 bit machine.
  chattr.c: Random cleanup; file-only variables are now static.  Options
  	for setting/clearings flags put into order, and #ifdef's removed
  	(since we now use a built-in header file).  Add error message if user
  	tries to set and reset the same flag.
  lsattr.c: Random cleanup; file-only variables are now static.  The -l
  	"long" listing has been changed to look nicer.  Options names have
  	been renamed to be more descriptive.
2000-02-11 05:00:19 +00:00
Theodore Ts'o d9c56d3ca0 Many files:
badblocks.c, chattr.c, dumpe2fs.c, e2label.c, findsuper.c, fsck.c,
  get_device_by_label.c, lsattr.c, mke2fs.c, mklost+found.c,
  nls-enable.h, partinfo.c, tune2fs.c, uuidgen.c: Add
  	Internationalization support as suggested by Marco d'Itri
  	<md@linux.it>.
2000-02-08 00:47:55 +00:00
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 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 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 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 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 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 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 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 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 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 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 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 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 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 896938d57e ChangeLog, Makefile.in, mke2fs.8.in, mke2fs.c, tune2fs.8.in, tune2fs.c:
tune2fs.c (main): Add a new option -O which allows the user to set and
  	clear certain "safe" filsystem feature flags.  Currently, the only
  	ones which are supported for modification are sparse_superblock and
  	filetype.
  mke2fs.c (PRS): Add new option -O which allows the user to request
  	filesystems with specific filesystem options.  By default on 2.2 and
  	later systems, create filesystems that have both file type information
  	and sparse superblocks.
1999-10-23 01:04:50 +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 671cbfa9fa ChangeLog, tune2fs.c:
tune2fs.c: Fix typo (double spaces) in messages regarding changing the
  	sparse superblock option
1999-10-20 18:14:23 +00:00
Theodore Ts'o 7f4bb6c6e8 ChangeLog, fsck.c, fsck.h:
fsck.c (wait_one): If the fsck process just started, wait a second
  	before sending a SIGUSR1, to give it a chance to set the signal
  	handler; otherwise, fsck will die on an unhandled SIGUSR1.
1999-10-20 18:11:01 +00:00
Theodore Ts'o 7671433a9d ChangeLog, mke2fs.c:
Fix display bug when printing out the number of superblocks.
  Suggested by Yann Dirson.
1999-10-20 18:06:29 +00:00
Theodore Ts'o 2740156bd1 ChangeLog, dumpe2fs.8.in, dumpe2fs.c, mke2fs.8.in, mke2fs.c, partinfo.c:
partinfo.c: Fix minor compilation bugs pointed out by Yann Dirson.
  mke2fs.c: Don't turn on sparse superblocks by default on pre-2.2 kernels.
  mke2fs.8.in: Add the possible valid block sizes for mke2fs.  Document
  	the -n flag, and the new defaults for the -s flag.
  dumpe2fs.c, dumpe2fs.8.in: Add new options -f (force) and -h (header-only).
  mke2fs.c (PRS): Fix logic for turning on/off the sparse superblock option.
Many files:
  Updated copyright statements to reflect the GPL with permission of the
  original authors.
1999-09-14 20:11:19 +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 50787ea22e ChangeLog, fsck.8.in, fsck.c, fsck.h, mke2fs.8.in, mke2fs.c:
* mke2fs.c (PRS, set_fs_defaults): Add new option -T which allows the
  	user to specify the how the filesystem is to be used.  Mke2fs now
  	chooses the filesystem parameters automatically based on the size of
  	the filesystem and the intended use of the filesystem.  Add new option
  	-n which simply goes through the calculations to determine the
  	parameters of the filesystem the system would make.
  * fsck.c, fsck.h: Add support for new option -C.  This option will
  	automatically manage e2fsck processes so that they will print
  	completion/progress bars.  If multiple filesystems are being checked,
  	arrange to make sure that only one e2fsck process is displaying a
  	progress bar at a time.
1999-07-19 15:30:21 +00:00
Theodore Ts'o 9f10a7b31e ChangeLog, badblocks.c:
badblocks.c (do_test): Don't complain if the write error occurs on a
  	non-block boundary.  This is perfectly common when using blocksizes
  	larger than 1k.
1999-07-16 10:41:36 +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 5dbb072e27 ChangeLog, uuidgen.1.in, uuidgen.c:
uuidgen.c: Add option parsing so that user can ask for either a
  	time-based UUID or a random-based UUID.
1999-07-03 06:16:06 +00:00
Theodore Ts'o 2d8defde38 ChangeLog, Makefile.in, fsck.c, get_device_by_label.c, get_device_by_label.h:
fsck.c: Added support for LABEL= and UUID= specifications for the
  	filesystem's device, to match what recent mount programs can support.
  	Also, close stdin when doing fsck -A or when checking more than one
  	filesystem at a time, so that e2fsck doesn't try to ask interactive
  	questions if the filesystem appears to be mounted.
  get_device_by_label.c: New file added to support LABEL=foo and
  	UUID=bar type specifications.
1999-07-03 01:59:42 +00:00
Theodore Ts'o 00eedba1bd ChangeLog, badblocks.c:
badblocks.c: Make the "done" string include enough spaces to clear out
  	a large block number.
1999-07-03 00:45:58 +00:00
Theodore Ts'o ca3c328510 mke2fs.c, ChangeLog, mke2fs.8.in:
mke2fs.c (check_mount): Allow a filesystem to be made even if it
  	appears mounted if the force option is given.
1999-06-29 14:37:35 +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 e2423cc07a findsuper.c, ChangeLog:
findsuper.c: Added documentation from aeb@cwi.nl; some minor code
  	cleanups.
1999-06-18 00:51:31 +00:00
Theodore Ts'o 02e7dd9ac7 ChangeLog, dumpe2fs.c, dumpe2fs.8.in:
dumpe2fs.c, dumpe2fs.8.in: Added new command-line options which allow
  	a filesystem expert to specify the superblock and blocksize when
  	opening a filesystem.  This is mainly useful when examining the
  	remains of a toasted filesystem.
1999-06-18 00:48:41 +00:00
Theodore Ts'o 5d45d80375 ChangeLog, Makefile.in, fsck.c, mke2fs.c, uuidgen.1.in, uuidgen.c:
uuidgen.c, uuidgen.1.in: Created command-line utility to generate
  	UUIDs.
  fsck.c (fsck_device, execute): Don't dereference a null pointer when
  	checking a filesystem not in /etc/fstab.
1999-03-16 19:35:19 +00:00
Theodore Ts'o 7d5633cf6e ChangeLog, fsck.c, mke2fs.c:
fsck.c (fsck_device): Print an error message if the user passes in a
  	device or directory name which isn't found in /etc/fstab.  Allow the
  	location of /etc/fstab to be overridden by the FSTAB_FILE environment
  	variable.
  mke2fs.c (write_inode_tables): Add kludge code so that when the
  	MKE2FS_SYNC environment variable is set, mke2fs will sync every
  	MKE2FS_SYNC block groups, while it is writing out the inode tables.
  	This is to work around a VM bug in the 2.0 kernel.  I've heard a
  	report that a RAID user was able to trigger it even using a 2.2
  	kernel.
1999-02-09 08:14:28 +00:00
Theodore Ts'o ee9229993a ChangeLog, fsck.c:
fsck.c (execute, wait_one): Modified routines so that they accurately
  create an fsck_instance even when the noexecute flag is set.  This
  allows for accurate debugging of the fsck pass structure.
  (check_all): When the verbose flag is given twice, print debugging
  information about when fsck is waiting for jobs to finish.
1999-01-16 05:39:12 +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 7953f61012 ChangeLog, fsck.8.in:
fsck.8.in: Clarified and expanded the documentation for the -A switch.
1999-01-09 05:03:52 +00:00
Theodore Ts'o 665f7107c5 ChangeLog, inode.c:
inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if the
  inode number is zero; if it's zero, return EXT2_ET_BAD_INODE_NUM.
ChangeLog, fsck.c:
  fsck.c (load_fs_info): If the pass number field is missing, it needs
  	to be treated as zero.
libext2fs.texinfo, README:
  Update for 1.14 release.
1999-01-08 13:33:39 +00:00
Theodore Ts'o 5515e6b47d ChangeLog, mke2fs.8.in, mke2fs.c:
mke2fs.c (PRS): Allow the user to specify exactly how many inodes
  	he/she wishes.
1999-01-05 07:25:06 +00:00
Theodore Ts'o a88fa0c013 ChangeLog, chattr.1.in, chattr.c, lsattr.1.in, lsattr.c:
chattr.c, lsattr.c: Only print the version information for the program
  	if the -V option is given.
  chattr.c: Ignore symbolic links when doing a recursive descent through
  	a directory.
1999-01-05 07:02:39 +00:00
Theodore Ts'o 93ab9d784e ChangeLog, mke2fs.c:
mke2fs.c: Add definition of SCSI_BLK_MAJOR if not defined, for
  	compatibility with Linux 1.2.13 header files.
ChangeLog, fsck.c:
  fsck.c (load_fs_info, parse_fstab_line): Ignore fstab lines are
  	commented out.  Also allow blank lines in the /etc/fstab file.
  	(execute): In verbose mode, print the mountpount of the filesystem
  	which we are checking (user request).
1999-01-02 04:04:42 +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