Commit Graph

582 Commits (ef80fdc8ad014c55e601018f4f6ec22065c37030)

Author SHA1 Message Date
Matthias Andree f6567a889f Fix printf types (FreeBSD has u_long for ntohl).
Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
2006-05-30 16:26:29 +02:00
Theodore Ts'o 9c07dc00b8 Add missing backwards compatibility for ancient Linux systems
This fixes some (but not all) of the compatibility bugs which prevented
e2fsprogs from being compiled on a Linux 2.0.35 system.  There are still
some unprotected use of long long's, and apparently some type problems
with the uuid library, but these can be fixed up later.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-05-29 11:06:16 -04:00
Theodore Ts'o 9447f38a17 Fix spelling mistakes in e2fsck, mke2fs.conf, and resize2fs man pages
Addresses Debian Bugs: #368392, #368393, #368394

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-05-22 17:59:37 -04:00
Theodore Ts'o 2aa362f54a Fix memory leak in e2fsck's error paths
Add missing brelse() calls to avoid memory leaks in error paths.  (Thanks
to Michael C. Thompson for pointing these out; they were originally 
found using Coverity.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-05-14 17:16:29 -04:00
Theodore Ts'o f63978aff7 Fix read/write badblocks testing in mke2fs and e2fsck
The exlcusive device safety check that was added inadvertently broke
e2fsck -cc and mke2fs -cc since e2fsck and mke2fs hold the device 
in exclusive access when badblocks is run.  So we add a private option
to badblocks, -X, which is passed by e2fsck and mke2fs to badblocks
to indicate that it is OK to skip the EXT2_MF_BUSY checks.

Addresses Debian Bug: #366017

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-05-13 09:25:47 -04:00
Theodore Ts'o f5fa20078b Add support for EXT2_FEATURE_COMPAT_LAZY_BG
This feature is initially intended for testing purposes; it allows an
ext2/ext3 developer to create very large filesystems using sparse files
where most of the block groups are not initialized and so do not require
much disk space.  Eventually it could be used as a way of speeding up
mke2fs and e2fsck for large filesystem, but that would be best done by 
adding an RO_COMPAT extension to the filesystem to allow the inode table
to be lazily initialized on a per-block basis, instead of being entirely initialized
or entirely unused on a per-blockgroup basis.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-05-08 20:17:26 -04:00
Theodore Ts'o cd84823aed Add badblocks(8) to SEE ALSO section of e2fsck's man page.
Addresses Debian Bug: #347295

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-27 12:10:07 -05:00
Theodore Ts'o 1abdba4b64 Add man page documenting the /etc/e2fsck.conf configuration file.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-27 01:03:11 -05:00
Theodore Ts'o 204ae371ad Tighten up profile parsing code by combining functions
Integrate profile_std_line() into parse_line(), and profile_parse_file()
into profile_update_file() to make the code use less memory.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-22 10:01:24 -05:00
Takashi Sato 8deb80a5d1 Fix format statements to make e2fsprogs programs 32-bit clean
Change the format string(%d, %ld) for a block number and inode number
to %u or %lu.

Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-18 21:43:46 -05:00
Theodore Ts'o 2e14e0c8cc Change e2fsck to open non-mounted filesystems in exclusive mode
Thanks to Andreas Dilger for this idea.  If the filesystem is not mounted,
e2fsck will open it in exclusive mode to prevent the a confused/careless 
system administrator from mounting the filesystem while the filesystem 
check is taking place, which could cause all sorts of problems.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-18 20:01:09 -05:00
Theodore Ts'o b1c52b26a4 Enhance e2fsck so it can fix external journal hint in the superblock
Check to see if the superblock hint for the external journal needs to
be updated, and if so, offer to update it.  (Addresses Debian Bug:
#355644)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-10 15:25:59 -05:00
Theodore Ts'o 26efcacd04 Remove e2fsck/malloc.h
(This was an artifact of the migration of the sources from BitKeeper
to Mercurial; mea culpa, mea maximum culpa --- Ted)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-03-08 18:25:30 -05:00
Theodore Ts'o a5f37a9b25 Add a config option which controls whether fs checks are skipped when on battery
Whether fs checks are skipped when the system is running on battery can be
controlled by the new e2fsck.conf option defer_check_on_battery (this option 
defaults to TRUE).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-29 05:15:36 -05:00
Theodore Ts'o bc3392c389 Print an explanation when skipping a check due being on battery
On Sat, Jan 28, 2006 at 12:53:33PM -0600, Fredrick Knieper wrote:
> Package: e2fsprogs
> Version: 1.38+1.39-WIP-2005.12.31-1
>
> When running fsck at boot or when running e2fsck manually on a device,
> fsck will not check a filesystem based on the maximum mount count,
> unless a flag such as -f or -c is used to force the filesystem check.

What's happening is that when you run on battery, e2fsck will delay
running the filesystem check, on the assumption that it is better to
defer the check until some time in the future when your laptop is
running on AC mains again.  This deferral is not infinite, however; if
the number of mounts exceeds twice the max mount counts, or if the
interval between checks exceeds twice the check interval, e2fsck will
force the check even though you are on battery.

I've changed the sources to print a message to make this more clear.

Addresses Debian Bug: #350306

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-29 05:05:31 -05:00
Theodore Ts'o 22fe674da4 Add support for quoted strings in tag and section names
Also changed top-level section name parsing to ignore leading and
trailing whitespace.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-06 15:04:39 -05:00
Theodore Ts'o 7d922f8bcb Add support to the profile library for /etc/foo/conf.d style directories
If a directory is passed to profile_init, then read all files which
match [0-9a-zA-Z]* in sort order.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-05 03:56:19 -05:00
Theodore Ts'o d673582241 Fix gcc -Wall warning in profile_helper.c
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-05 01:29:50 -05:00
Theodore Ts'o d45544ca54 More profile cleanups: remove prf_data_t data structure
Eliminate the prf_data_t data structure and fold it back into
prof_file_t.  Eschew needless complexity!

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-05 01:23:48 -05:00
Theodore Ts'o 95a8d1de51 Enhance profile library's parser to accept comments
This also changes syntax accepted by the profile parser.  The value of
profile relations must not contain spaces unless it is quoted;
otherwise the parser will throw an error.  Previously something like
this was allowed:

	[liboptions]
		test = foo bar

Now, the relation must be in double quotes in order to be valid, i.e.,
"foo bar".

Comments are allowed anywhere and can be started with either a ';' or
a '#' character.  The only place where comments will not be intepreted
as beginning a comment is in a quoted string.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-05 00:47:34 -05:00
Theodore Ts'o f5f14fcfe9 Add syntax error reporting to the profile library
E2fsck will now report syntax errors in /etc/e2fsck.conf intead of simply
ignoring the config file when there are errors.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-04 10:32:16 -05:00
Theodore Ts'o 9a4c209cd2 Simplify profile core functionality
Boil down and simplify profile.c, and move extra functionality that's
not needed into profile_helpers.c

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-02 22:04:41 -05:00
Theodore Ts'o 44dc5f8804 Clean up test driver program for profile.c and #ifdef unused static functions
Unified batchmode and command-line handling.

profile_is_node_final() and profile_find_node_relation() are static,
unused functions.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-02 12:25:03 -05:00
Theodore Ts'o cec7103d92 Fix profile.c so that com_err.h doesn't have to be installed
Fix #include of com_err.h so that it isn't required that the com_err
development environment be installed.  (Addresses Debian Bug: #345519)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2006-01-01 21:31:45 -05:00
Theodore Ts'o 8fd98bba21 Add e2fsck problem handling to be configurable
Add the ability for the e2fsck configuration file to override the
behaviour of e2fsck when a particular filesystem problem is
encountered.  This allows reconnecting an inode to lost+found to not
stop the boot sequence, if a system administrator really badly wants
this behaviour for some specialized reason, for example.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 16:33:33 -05:00
Theodore Ts'o 5582275fe0 Slim down profile.c
#ifdef out functions not needed by e2fsck.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 16:24:07 -05:00
Theodore Ts'o 5dd2a6e08d Add E2FSCK_CONFIG environment variable
Also, use this environtment variable to make sure that a local
/etc/e2fsck.conf file will not interfere with the regression test
suite.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 16:21:00 -05:00
Theodore Ts'o fd7ac1fc98 Fix incorrect location of prof_err.h in profile.c.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 01:28:33 -05:00
Theodore Ts'o eb065ccf18 Add allow_cancellation config option
If the e2fsck configuration file sets the allow_cancellation option to be 
true, then if the filesystem does not have any known problems, and was 
known to be cleanly unmounted, then let e2fsck exit with a status code of 0 
instead of 32 (FSCK_CANCELED) so that the bootup scripts will continue 
without stopping the boot.  (Addresses Debian Bug: #150295)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 00:52:23 -05:00
Theodore Ts'o 1017f65179 Read in /etc/e2fsck.conf configuration file at startup
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-31 00:00:10 -05:00
Theodore Ts'o 2fa9ba9833 Add the profile library code to e2fsck
The profile library was originally written by Theodore Ts'o in 1995
for use in the MIT Kerberos v5 library.  It has been
modified/enhanced/bug-fixed over time by other members of the MIT
Kerberos team.  This version was originally taken from the Kerberos
v5 distribution, version 1.4.2, and radically simplified for use in
e2fsprogs.  (Support for locking for multi-threaded operations,
being able to modify and update the configuration file
programmatically, and Mac/Windows portability have been removed.
It has been folded into a single C source file to make it easier to
fold into an application program.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-30 23:57:32 -05:00
Theodore Ts'o 311df05c5e Automatically fix superblock times in the future
If the superblock last mount time or last write time is in the future, fix
this automatically if e2fsck is in preeen mode, since Debian's boot sequence
bogusly doesn't set the time correctly until potentially very late in the bootup 
process, and this can cause false positives that will cause users' systems 
to fail to booting.  (Addresses Debian Bugs #343662 and #343645)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-19 00:02:47 -05:00
Theodore Ts'o bba44f956e Clarify the e2fsck man page regarding the -c option
A user was confused about whether or not e2fsck -c performed a destructive 
test on the filesystem, since it stated that -cc resulted in a non-destructive
read/write test.   Clarify that -c does a read/only test.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-09 18:18:06 -05:00
Theodore Ts'o ae1182cb84 Make e2fsck -cc warn on a read-only root filesystem
Don't let the user run e2fsck -ccn on the root partition, without warning 
that he or she might be doing something Really Stupid.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-09 18:11:16 -05:00
Theodore Ts'o f4b6d2a039 Fix typo in e2fsck error message.
Thanks to Solar Designer for pointing out the missing preposition.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-09 17:31:08 -05:00
Theodore Ts'o 84d3518bb9 Clarify description of the -p, -n, and -y options in the e2fsck man page.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-12-09 17:28:56 -05:00
Theodore Ts'o 8dceb92407 E2fsck: fix future times in the superblock's last mount or last write fields
Detect if the superblock's last mount field or last write field is in
the future, and offer to fix if so.  (Addresses Debian Bug #327580)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-09-24 21:59:45 -04:00
Theodore Ts'o b28a6e96af Fix use-after-free bug of e2fsck context structure.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-07-25 11:36:43 -05:00
Theodore Ts'o 2743159572 Fix false positives from valgrind: memcpy via no-op structure copy
Don't do a structure copy via an assignment in e2fsck's pass #1 when
it is a no-op in order to avoid false positives from valgrind.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2005-07-25 11:36:43 -05:00
Theodore Ts'o 49809dd863 Make e2fsck Pass 1C header consistent with the other headers
Removed the period from the Pass 1C header to make it consistent with
the other e2fsck pass headers.
2005-07-04 13:08:37 -05:00
Theodore Ts'o f76344fb6f [BUGFIX]: E2fsck will segfault on disconnected inode with extended attribute(s)
This was actually caused by two bugs.  The first bug is that if the
inode has been fully fixed up, the code will attempt to remove the
inode from the inode_bad_map without checking to see if this bitmap is
present.  Since it is cleared at the end of pass 2, if
e2fsck_process_bad_inode is called in pass 4 (as it is for
disconnected inodes), this would result in a core dump.

The first bug was mostly hidden by a second bug, which caused
e2fsck_process_bad_inode() to consider all inodes without an extended
attribute to be not fixed.

Note: This bug was introduced in e2fsprogs 1.36.

(Addresses Debian Bug: #316736)
2005-07-04 12:53:36 -05:00
Theodore Ts'o 1f965c8d96 Update for e2fsprogs 1.38 release. 2005-06-30 20:06:45 -04:00
Theodore Ts'o 5327bb499a Update typos in changelog 2005-06-26 22:12:40 -04:00
Theodore Ts'o bb145b01cf Fix e2fsprogs messages for grammar and consistency, based on suggestions
from Benno Schulenberg.

Add missing _() so all strings can be internationalized.
2005-06-20 08:35:27 -04:00
Theodore Ts'o 5fb86b425e Fix minor typo introduced in e2fsck man page. 2005-06-20 08:24:28 -04:00
Theodore Ts'o 73d1d49ac1 Make the e2fsck man page clear that the -c, -l, and -L options are
never safe to use on a mounted filesystem, and in general, running
e2fsck on mounted filesystems is a bad idea.
2005-06-19 21:04:12 -04:00
Theodore Ts'o 7ae1983a23 Clean up e2fsck problem description messages for typo's and to make them
easier to understand (sorry, translators).

Add new @m (multiply-claimed) and @n (invalid) expansions for e2fsck
problem descriptions.

Add Dutch translation, and update French translation.

Add an explanation of how the @-expansion and %-exapansion works in 
e2fsck/problem.c to make life easier for the translators.

Synchronize and update po files.
2005-06-19 09:45:36 -04:00
Theodore Ts'o 15f5051e39 Fix a minor spelling typo in blkid's man page, and update e2fsck's REPORTING
BUGS section to request that e2fsck's messages printed in English, and to 
send a raw e2image filesystem dump if possible.
2005-06-05 16:46:19 -04:00
Theodore Ts'o 75e93ab097 Update "make depend" information. Fixes SMP parallel build problem.
(Addresses Sourceforge Bug: #1157933)
2005-05-06 09:37:58 -04:00
Theodore Ts'o f37ab68a26 Corrects a few mistakes in the fsck man page, wraps two overlong lines,
and changes "bad" to "invalid" in some messages to avoid confusion with
"bad blocks" in the e2fsck, mke2fs, and badblocks programs.  Thanks to 
Benno Schulenberg.  (Addresses Sourceforge Bug: #1189803)
2005-05-05 23:15:55 -04:00
Theodore Ts'o 8139367bbd Fix spelling mistakes in man pages. (Addresses Debian Bugs: #304591,
#304592, #304594, #304597, #304593)
2005-04-16 14:05:09 -04:00
Theodore Ts'o 5e91614349 Don't offer to update or clone the resize inode when e2fsck deals with
multiply claimed blocks.
2005-04-14 17:10:14 -04:00
Theodore Ts'o 1f3ad14a5a Use a centrally stored current time for "now" which
can be overridden using the E2FSCK_TIME environment 
variable, for better reproducibility for regression tests.
2005-04-14 14:07:53 -04:00
Theodore Ts'o 4147d9f029 pass1.c (e2fsck_pass1): If the superblock last mount time (not
just the last write time) looks insane, then assume that
	we can't do the LOW_DTIME checks.
2005-04-06 14:55:53 -04:00
Theodore Ts'o fd4b28efd3 Update for the e2fsprogs 1.37 release. 2005-03-21 22:37:03 -05:00
Theodore Ts'o cebe48a1ec Integrate code from Alex Thomas at Clusterfs to check extended attributes
stored in inodes into e2fsck.

There are a number of bug fixes and enhancements over the original lustre fsck
BK repository.  The biggest one is that this extended attribute values must
be aligned on 4-byte boundaries.
2005-03-21 13:15:45 -05:00
Theodore Ts'o 89db86d33c Make e2fsck check the superblock's inode_size to make sure it is
sane before we start depending on it!
2005-03-20 22:47:54 -05:00
Theodore Ts'o 030970ed75 Fix e2fsck, debugfs, and the ext2fs_mkdir function so that when we create
a new inode we make sure that the extra information in the inode (any extra
fields in a large inode and any ea-in-inode information) is cleared.  This 
can happen when e2fsck creates a new root inode or a new lost+found directory,
or when the user uses the debugfs write, mknod, or mkdir commands.  Otherwise,
the newly create inode could inherit garbage (or old EA information) from
a previously deleted inode.
2005-03-20 20:05:22 -05:00
Theodore Ts'o dc71f23e63 Fix bug in e2fsck where we don't notice if a file with an extended
attribute block is so big that i_blocks wraps to zero.
2005-03-20 16:57:10 -05:00
Theodore Ts'o 3eee5e9eed Update for release of e2fsprogs 1.36. 2005-02-05 18:26:03 -05:00
Theodore Ts'o 33db8f80f2 Remove support for --enable-clear-htree; this was
only needed during the early development of the htree patch.
2005-02-05 10:28:15 -05:00
Theodore Ts'o a894eb4795 pass2.c (e2fsck_process_bad_inode): Fix a corner case involving
big-endian systems, long symlinks and i_file_acl set when
	it shouldn't be.  Without this bugfix, f_clear_xattr will
	fail on big-endian machines.
2005-01-28 12:27:35 -05:00
Theodore Ts'o ea77431563 Fix two bugs found by the regression test suites. The bug was created when
we changed ext2fs_create_resize_inode to always create the resize inode,
even when s_reserved_gdt_blocks is zero.  Mke2fs and e2fsck was calling 
ext2fs_create_resize_inode() unconditionally, and depending on 
s_reserved_gdt_blocks to be zero, instead of explicitly checking the 
resize_inode feature.
2005-01-28 11:45:28 -05:00
Theodore Ts'o 7e0282c5f2 Fixed missing not_fixed branch in e2fsck so that if the frag size field in
the inode is not fixed, the inode_bad_map bitmap won't be cleared.  Thanks to
Stephen Tweedie for pointing this out.
2005-01-27 21:40:53 -05:00
Theodore Ts'o d4dc0a9e29 Create the resize inode is created even if the s_reserved_gdt_blocks is
zero; e2fsck will now complain and recreate the resize inode if i_links_count
is zero or if it is not a regular file.
2005-01-27 18:47:51 -05:00
Theodore Ts'o 5780ead245 Cset exclude: tytso@think.thunk.org|ChangeSet|20050123214956|52665 2005-01-27 18:13:33 -05:00
Theodore Ts'o 6c313fd473 Fix e2fsck to not delete symlinks that contain an extended attribute after
the ext_attr feature flag has been cleared.  (Addresses Red Hat Bugzilla 
#146284)
2005-01-27 14:28:41 -05:00
Theodore Ts'o 550a4afa24 E2fsck will now check the individual block group inode and block free counts,
as well as the filesystem-wide inode and block free counts.  If any of the
free counts is too large, force a full filesystem check.  (Addresses 
Debian Bug #291571)
2005-01-25 03:09:24 -05:00
Theodore Ts'o 2d09601006 Fix e2fsck so that it does not complain if the resize_inode feature is
enabled, but s_reserved_gdt_blocks is zero and there is no double indirect
block in the resize inode.  If there are no blocks reserved for on-line
expansion, there is no need for the DIND block to be allocated in the resize
inode.
2005-01-23 16:49:56 -05:00
Theodore Ts'o 9214dccbfb Miscellaneous gcc -Wall cleanups. Use fixed rather than floating point
math to avoid rounding issues.
2005-01-19 13:57:40 -05:00
Theodore Ts'o ecd0d8fe2a Clean up Matthais's "fix crash when /proc/acpi/ac_acapter is not present"
patch.
2005-01-17 13:59:18 -05:00
Matthias Andree 4b13704cbe Fix crash when /proc/acpi/ac_adapter/ is not present, for instance,
on pre-ACPI and non-Linux systems.
2005-01-13 03:35:29 +01:00
Theodore Ts'o d2ee56d86e Fix configure.in to use AC_CHECK_TYPES instead of the "broken by design"
autoconf 2.13 version of AC_CHECK_TYPE.  Otherwise, on some platforms
intptr_t might get erroneously #define'd to be long.   (Addresses 
Debian Bug #289133)
2005-01-09 00:57:45 -05:00
Theodore Ts'o 22ba4c1ded Make tune2fs and e2fsck consistent about allowing at most 50% of the blocks
in a filesystem to be reserved for allocation by the root user.
2005-01-06 14:05:17 -05:00
Theodore Ts'o dc8ce34637 Fix resize inode handling on big endian systems, by adding new routines
that read/write indirect blocks, byte swapping them if necessary.
2005-01-06 00:04:24 -05:00
Theodore Ts'o c3ffaf833b Add support to detect corrupted resize_inode's to e2fsck. 2004-12-24 01:42:22 -05:00
Theodore Ts'o 71669d0541 Avoid some potential inode cache coherency problem caused by using the
byte-swapping options to e2fsck.  This was the cause of some hard to 
reproduce problems that had been reported in the past, and which the
resize_inode changes tickled in a much more repeatable fashion.
2004-12-23 21:49:05 -05:00
Theodore Ts'o e75cfc5da8 Fix e2fsck so that it will clean up filesystesm that have the
resize_inode capability disabled, but which still have the
s_reserved_gdt_blocks field set in the superblock, or which 
still have blocks in the inode #7 (the resize inode).
2004-12-16 20:13:45 -05:00
Theodore Ts'o 22c6821a24 Supplied changelog for resize inode patch. 2004-12-15 17:26:32 -05:00
Theodore Ts'o d323f8fb36 Add support for on-line resizing ala the resize inode. This patch
is taken from Fedora Core 3's e2fsprogs 1.35-11.2.src.rpm's 
e2fsprogs-resize.patch.
2004-12-15 14:39:16 -05:00
Theodore Ts'o acb79d9d19 Fix stupid core dumping bug if the TZ environment variable isn't set. 2004-12-15 12:21:41 -05:00
Theodore Ts'o 522798d342 Add install-strip and install-shlibs-strip targets
Use Linux-kernel-style makefile output for "make install"

Update intl/Makefile.in to version from gettext 0.14.1
2004-12-15 11:28:55 -05:00
Theodore Ts'o 6d4022786d Use MKINSTALLDIRS macro so that the Makefiles can find the script
correctly.

Update Makefile dependencies.

Update "make depend" production so that it filters out comments
inserted by newer gcc compilers.

Remove sync from e2fsck's "make all" target.
2004-12-14 21:46:26 -05:00
Theodore Ts'o 8ff1a86005 If the TZ environment variable is set to GMT, use gmtime()
instead of localtime() or ctime() to force the use of GMT.  
This is because the dietlibc doesn't honor the TZ environment 
variable.
2004-11-30 19:57:20 -05:00
Theodore Ts'o 2e8ca9a26b Add support for passing options to the io layer using the URL syntax. For
example, /tmp/test.img?offset=1024.  Multiple options can separated using
the & character, although at the moment the only option implemented is
the offset option in the unix_io layer.
2004-11-30 14:07:11 -05:00
Theodore Ts'o 47204ff983 Use Linux-kernel-style makefile output to make it easier to
see errors/warnings.
2004-11-30 10:52:27 -05:00
Richard Mortimer 6e4fbbeb50 Attempt recovery if the journal contains illegal blocks 2004-10-04 17:56:24 +01:00
Theodore Ts'o 8421fb67f2 pass1.c (process_block): Change the limit of directory size from
32 MB to 2GB.
2004-07-26 20:11:49 -04:00
Theodore Ts'o 93effaa456 Fixed potential ordering constraint problem in e2fsck's journal
recovery code by implementing the sync_blockdev function.  Thanks to
Junfeng Yang from the Stanford Metacompilation group for pointing this
out.
2004-05-26 20:58:45 -04:00
Theodore Ts'o aa5c0a4562 Remove .cvsignore files; they were out of date, and causes lintian
to flame about their presence in the source tarball.
2004-05-05 09:02:36 -04:00
Theodore Ts'o 66fbee8cbb unix.c (check_if_skip): If the checkinterval is zero, then
disregard it when calculating when the next check will
	take place by e2fsck.
2004-05-04 20:38:17 -04:00
Theodore Ts'o c07f9f2639 In e2fsck, when trying to determine if the system is running on
battery, be more flexible about the name of the ACPI device that
corresponds to the AC adapter.  (Addresses Debian bug #242136)
2004-04-12 00:16:44 -04:00
Theodore Ts'o dd60705665 Refine the build process to avoid re-running subst all the time on
some generated files, by having subst update the modtime on these 
files even when the generated file hasn't changed.  We do this with 
generated files that do not have any downstream dependencies.
2004-04-03 13:53:46 -05:00
Matthias Andree 83e692e88b unix_io.c, pass1.c:
int -> unsigned for 1 bit wide bitfields - we cannot have a value and a sign in 1 bit.
  Fixes some of the Intel C++ 8.0 warnings (-w1 level).
2004-03-30 04:17:14 +02:00
Theodore Ts'o b70b1167fe Update version number for e2fsprogs 1.35 release. 2004-02-28 10:52:35 -05:00
Theodore Ts'o bc69f82db8 Add missing break statement so e2fsck -k actually works.
(Addresses Debian Bug #234993)
2004-02-27 10:39:27 -05:00
Theodore Ts'o 4fb9d52ba6 unix.c (main, PRS), e2fsck.8.in: Add a new -k option which keeps
the existing badblocks list when using the -c option.
	(Addresses Debian bug #229103)
2004-02-24 00:16:09 -05:00
Theodore Ts'o ed52f62bbd Makefile.in (PROFILED_LIBS, PROFILED_DEPLIBS): Fix reference to
libblkid so that the build will work with --enable-profile
	(Addresses Sourceforge bug #811408)
2004-02-23 21:26:23 -05:00
Theodore Ts'o 151786fc55 Fix up preen mode messages during pass 1B/C/D. 2004-02-22 15:41:11 -05:00
Theodore Ts'o bbbc92f2ed e2fsck.c (e2fsck_run): Clear the SETJMP_OK flag when returning
so we don't double longjump into an invalid stack frame.
	(Thanks to Matthias Andree for providing this fix.)
2004-02-21 20:53:03 -05:00
Theodore Ts'o 489f00248f problem.c (fix_problem): Don't call print_e2fsck_message if the
message is empty; otherwise, the NLS substitution will
	print the .po header, which is Just Wrong.
2004-01-31 21:24:51 -05:00
Theodore Ts'o 1ba7a2f2b6 Fix a byte swap bugs, including one which caused e2fsck to
incorrectly treat as valid symlinks created with SE Linux 
(Debian bug #228723) as well as failing the f_journal test case on 
big endian systems due to the backup journal blocks not being swapped.
2004-01-30 01:48:06 -05:00
Matthias Andree b34cbddbd6 Re-add FreeBSD support.
Tested on FreeBSD 5.2-CURRENT as of 2003-12-28.
Tested on FreeBSD 4.9-STABLE  as of 2003-12-27.
2003-12-28 18:21:26 +01:00
Matthias Andree b969b1b8a5 Fix more compiler warnings. 2003-12-28 13:04:35 +01:00
Theodore Ts'o 2e5fcce05e Fix bug in e2fsck: When reconnecting a directory, we may
need to create a lost+found directory.  This may
invalidate our pointer to the directory information, so we
must look it up again after calling
e2fsck_reconnect_file().  (Addresses Debian bug #219640).
2003-12-12 03:00:56 -05:00
Theodore Ts'o 6c7d61da00 e2fsck.h (E2F_FLAG_RESTARTED): Assign a unique flag bitfield to
E2F_FLAG_RESTARTED.  This fixes a bug where if the user
	specifies an alternate superblock, and the journal needs
	to be replayed, e2fsck would erroneously assume that
	journal had been run already without clearing the
	NEEDS_RECOVERY flag, and bomb out with an error.
2003-12-11 01:00:21 -05:00
Theodore Ts'o 544349270e Fix gcc -Wall nitpicks 2003-12-07 01:28:50 -05:00
Theodore Ts'o 3de085dd41 recovery.c, jfs_user.h: Sync recovery.c with latest 2.5 kernel
version.
2003-12-07 01:00:02 -05:00
Theodore Ts'o 3ddf2f662e When testing a disk using e2fsck -c, use the list
of new bad blocks to replace the current list of bad
blocks.  This way "e2fsck -c" can be used to recover from
a corrupted bad block inode.
2003-12-02 07:56:42 -05:00
Theodore Ts'o 015b03df7d In e2fsck, given an extra grace period before actually forcing
a filesystem check if a laptop system reports it is running on
battery.  This way the laptop will be biased to waiting until
it is on AC power before doing a filesystem check.  (Addresses
Debian bug #205177)
2003-11-21 11:02:22 -05:00
Theodore Ts'o 6de289cb10 In e2fsck, if the number of mounts until the next forced filesystem
check is 5 or less, mention this to the user.  (Addresses 
Debian bug #157194)
2003-11-21 10:54:54 -05:00
Theodore Ts'o 000ba4046f pass1.c (e2fsck_pass1), problem.h (PR_1_BB_FS_BLOCK),
problem.c (PR_1_BB_FS_BLOCK, PR_1_BBINODE_BAD_METABLOCK_PROMPT): 
	Fix up the handling of corrupted indirect blocks in the 
	bad block.  We now correctly handle the case where there
	is an overlap between a block group descriptor or
	a superblock and a bad block indirect block.  In the case
	where the indirect block is corrupted, we now suggest
	"e2fsck -c".
2003-11-21 10:41:58 -05:00
Theodore Ts'o 817e49e3ce Check the returned name from blkid_get_devname in tune2fs and
e2fsck, and print an error if the requested LABEL/UUID does 
not exist (previously, we core dumped!)
2003-11-21 09:10:29 -05:00
Theodore Ts'o ef344e13d2 Centeralize calculation of which blocks are reserved/used for
the superblock and block group descriptors into two functions:
ext2fs_reserve_super_and_bgd, found in lib/ext2fs/alloc_sb.c, and
ext2fs_super_and_bgd_lock, found in lib/ext2fs/close.c.

Change e2fsck/pass1.c (mark_table_blocks), lib/ext2fs/closefs.c
(ext2fs_flush), lib/ext2fs/initialize.c (ext2fs_initialize),
and misc/dumpe2fs.c (list_desc) to use these functions.

e2fsck/ChangeLog
    pass1.c (mark_table_blocks): Use the new function
    	ext2fs_reserve_super_and_bgd to calculate the blocks to be
    	reserved.

lib/ext2fs/ChangeLog
    closefs.c (ext2fs_super_and_bgd_loc): New function which
    	centralizes the calculation of the superblock and block
    	group descriptors.
    	(ext2fs_flush): Use ext2fs_super_and_bgd_lock to figure
    	out where to write the superblock and block group
    	descriptors.
    
    alloc_sb.c (ext2fs_reserve_super_and_bgd): New function which
    	reserves space in the block bitmap using
    	ext2fs_super_and_bgd_loc.
    
    initialize.c (ext2fs_initialize): Use
    	ext2fs_reserve_super_and_bgd to initialize the block bitmap.

misc/ChangeLog
    dumpe2fs.c (list_desc): Use ext2fs_super_and_bgd_loc to
    	determine the locations of the superblock and block group
     	descriptors.
2003-11-21 09:02:21 -05:00
Theodore Ts'o 557ddb2fdf util.c (get_backup_sb): Check to make sure the context is passed
in non-NULL before trying to dereference it.  Otherwise we
	might core dump when called to expand %S in a problem
	description.
2003-08-24 21:36:38 -04:00
Theodore Ts'o a7ac1df34f Adjust description line so that apropos "ext2" or "ext3" will
find all of the e2fsprogs man pages.  (Addresses Debian Bug #206845)
2003-08-24 17:56:41 -04:00
Theodore Ts'o 27479eb227 journal.c (e2fsck_move_ext3_journal): When moving the journal or
backing up the journal inode, make sure it gets written to
	all the superblocks.
2003-08-21 08:59:38 -04:00
Theodore Ts'o a435ec3449 Add support for backing up the journal inode location in the
superblock.  E2fsck will automatically save the journal information
in the superblock if it is not there already, and will use it if the
journal inode appears to be corrupted.  ext2fs_add_journal_inode() 
will also save the backup information, so that new filesystems
created by mke2fs and filesystems that have journals added via
tune2fs will also have journal location written to the superblock as
well.  Debugfs's logdump command has been enhanced so that it can
use the journal information in the superblock.

The debugfs man page has been improved to more fully describe the
logdump command.

Added two new functions, ext2fs_file_open2() and 
ext2fs_inode_io_intern2() which take a pointer to an inode structure;
this is needed so that e2fsck and debugfs can synthesize a
fake journal inode and use it to access the journal.
2003-08-21 00:40:26 -04:00
Theodore Ts'o 54a31a3b2e e2fsck.h, unix.c (PRS, e2fsck_clear_progbar,
e2fsck_simple_progress): Don't print the ^A and ^B
	characters which bracket the progress bar when the e2fsck
	program is talking directly to a tty, but only when it is
	being piped to another program.  (Addresses Debian bug
	#204137)
unix.c: Move some initialized variables to the BSS segment to 
	shrink the size of the e2fsck executable.
2003-08-19 10:08:34 -04:00
Theodore Ts'o 0c193f8204 Include inttypes.h if present. New macros INT_TO_VOIDPTR and
VOIDPTR_TO_INT.  Use them throughout for int<->void *
	casts to fix 64-bit warnings.
2003-08-01 14:26:23 -04:00
Theodore Ts'o c4e3d3f374 ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem()
all now take a 'void *' instead of a 'void **' in order to 
avoid pointer aliasing problems with GCC 3.x.
2003-08-01 09:41:07 -04:00
Theodore Ts'o 9c7ec17809 Update for 1.34 release. 2003-07-26 01:03:34 -04:00
Theodore Ts'o 48e6e81362 Fixx gcc -Wall nitpicks. 2003-07-06 00:36:48 -04:00
Theodore Ts'o d3128ccb06 Fix spelling error in e2fsck problem reporting. 2003-06-24 18:06:03 -04:00
Theodore Ts'o 113e405bb6 unix.c (show_stats), e2fsck.h: Use ngettext (abbreivated with
the macro P_(str1, str2, n)) to simplify the statistics
	reporting.
2003-05-17 21:00:46 -04:00
Theodore Ts'o 2a29f1354f Add --enable-test-io-debug configure option which causes e2fsck and
tune2fs to use the test I/O manager.

The test I/O manager has been changed to not do anything extra by 
default, unless the TEST_IO_FLAGS and/or TEST_IO_BLOCK environment
variables are set, which controls what I/O operations are logged and
a block number to watch, respectively.  The log messages are sent to
stderr by default, unless a filename is specified via the 
TEST_IO_LOGFILE environment variable.
2003-05-05 12:08:47 -04:00
Theodore Ts'o ddc32a045b Add Czech translation.
Remove "NYC" translation.  Add Czech translation from Miloslav 
Trmac <mitr@volny.cz>

Random NLS and other display fixes from Miloslav.
2003-05-03 18:45:55 -04:00
Theodore Ts'o a04eba3f88 Update to gettext 0.11.5. We now enable NLS support by default.
Fixed up support for using the internal intl library.
2003-05-03 16:35:17 -04:00
Theodore Ts'o 6177c41f99 Fixed NLS support for message abbreviations in e2fsck. 2003-04-27 17:34:14 -04:00
Theodore Ts'o 71df0dc393 Update for 1.33 release.
Fix typo's in README.subset

Change debian control file so it doesn't bomb out if the EVMS FSIM
is not there, since it is not built on the Hurd.  Resolves Debian
bug #189687.
2003-04-21 16:17:09 -04:00
Theodore Ts'o 520ead378e Fix gcc -Wall warnings. 2003-04-19 13:48:27 -04:00
Theodore Ts'o 12dd69f5ff e2fsck/rehash.c (name_cmp): Sort the deleted inodes to the end
of the list, for portability to systems that whose qsort
	does not perform a stable sort.
2003-04-17 21:55:38 -04:00
Theodore Ts'o 908b785c3f Use setvbuf instead of setbuf to force stdout and
stderr to be non-buffered when the stdout/stderr are a pipe.
This fixes a cosmetic problem when using e2fsck under logsave.
2003-04-16 15:20:13 -04:00
Theodore Ts'o bc34d6be65 * Add support for the -a and -s options to logsave.
* Change e2fsck to bracket its progress bar output with ctrl-A and ctrl-B 
    characters, so that logsave -s can omit writing the progress bar output
    to the log file.
2003-04-16 14:05:06 -04:00
Theodore Ts'o 16fa86b9c5 Remove the debian-special legal permission notes. 2003-04-14 20:40:49 -04:00
Theodore Ts'o fff45483ed Add portability enhancements for Cygwin32 environment. 2003-04-13 00:44:19 -04:00
Theodore Ts'o 2a77a784a3 E2fsck now updates the global free block and
inode counters from the block group specific counters
quietly.  This is needed for an experimental patch which
eliminates locking the entire filesystem when allocating
blocks or inodes; if the filesystem is not unmounted
cleanly, the global counts may not be accurate.
2003-04-05 22:50:44 -05:00
Theodore Ts'o aa75ecccab Fix the Apple Darwin port. 2003-03-17 10:01:22 -05:00
Theodore Ts'o 6cca7ba96d Update dependency information in Makefiles 2003-03-16 20:21:16 -05:00
Theodore Ts'o 1d2eef4227 rehash.c (e2fsck_rehash_dir): If user specified the -n option,
skip trying to write out directory.
	(e2fsck_rehash_directories): Fix the percentage
	calculation in the progress bar.
2003-03-15 13:30:07 -05:00
Theodore Ts'o 52734dc532 Don't display progress bar when rebuilding directories unless
explicitly requested by the user.
2003-03-15 04:03:43 -05:00
Theodore Ts'o 0926668d3a e2fsck/pass2.c (check_dir_block): Check for duplicate filenames within
a single directory block (because this is the easy case;
	we don't currently check for duplicates that span
	directory blocks, for now.  Eventually for htree
	directories we can do this by searching for all directory
	blocks that have a hash overflow, and then searching the
	adjacent blocks to find all other potential duplicates.)
2003-03-14 22:19:10 -05:00
Theodore Ts'o e71d87317a Add Apple/Darwin patches. 2003-03-14 02:13:48 -05:00
Theodore Ts'o b0700a1b60 Change e2fsck to detect and offer to delete or rename duplicate
filenames in directories when rebuilding directories using
"e2fsck -fD /dev/XXX"
2003-03-14 01:43:56 -05:00
Theodore Ts'o 77be4d2df1 Minor man page fixes (Addresses Debian bugs #173612, #175233,
#175113, and #170497)
2003-03-06 12:39:55 -05:00
Theodore Ts'o f364093b19 Update debugfs and e2fsck to use the blkid library. 2003-03-01 19:47:44 -05:00
Theodore Ts'o 19445ef970 Fixed up minor documentation issues (man page for badblocks and usage
message for e2fsck).
2003-01-29 21:04:52 -05:00
Theodore Ts'o 4f489285b6 pass1.c (check_blocks): Use the EXT2_I_SIZE macro. 2003-01-22 18:28:15 -05:00
Theodore Ts'o e34bf43aff pass2.c (strnlen): Provide strnlen if libc doesn't. 2002-12-18 18:28:10 -05:00
Theodore Ts'o b92ae1535c Detect if there is an attempt to run the journal twice, and
abort the e2fsck run with an error if this is the case.
(Address IBM Bugzilla bug #1226)
2003-01-02 16:53:54 -05:00