Theodore Ts'o [Thu, 5 Jan 2006 05:47:34 +0000 (00:47 -0500)]
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.
Theodore Ts'o [Sat, 31 Dec 2005 21:33:33 +0000 (16:33 -0500)]
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.
Theodore Ts'o [Sat, 31 Dec 2005 06:11:06 +0000 (01:11 -0500)]
Move the blkid and uuidgen programs out of library packages and into e2fsprogs
Move the blkid and uuidgen binaries out of libblkid1 and libuuid1 and
into the e2fsprogs package to support soname transitions and
simulaneous installs of multiarch flavors to coexist. (It's not worth
creating two whole new packages for two separate binaries, so we just
fold them into e2fsprogs.) (Closes: #330737, #330736)
Theodore Ts'o [Sat, 31 Dec 2005 06:04:40 +0000 (01:04 -0500)]
Clarify chattr man page to make sure people realize limitations in the kernel
Add notes in chattr's man page to make sure the reader refers to the
BUGS AND LIMITATIONS section so that even an idiot will be able to see
that some of these attributes are not yet implemented. (Addresses
Debian Bug: #312515)
Theodore Ts'o [Sat, 31 Dec 2005 05:52:23 +0000 (00:52 -0500)]
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)
Theodore Ts'o [Sat, 31 Dec 2005 04:57:32 +0000 (23:57 -0500)]
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.)
Theodore Ts'o [Fri, 30 Dec 2005 03:45:29 +0000 (22:45 -0500)]
Avoid needlessly recompilation of library objection files
Fixing the problem of parallel builds sometimes not creating the library
subdirectories caused library object files to get constantly recompiled.
Fix this by remaping how the Makefile subdirectories decide to create
the subdirectories.
Theodore Ts'o [Mon, 19 Dec 2005 05:02:47 +0000 (00:02 -0500)]
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)
Theodore Ts'o [Mon, 19 Dec 2005 04:33:15 +0000 (23:33 -0500)]
Newer versions of debian-buildpackage are much pickier about spacing and
formatting of the Debian changelog fix. Fix very old entries that had invalid
spacing.
Theodore Ts'o [Sun, 11 Dec 2005 03:33:25 +0000 (22:33 -0500)]
Use $(LDFLAGS) when generating shared libraries
Makefile.elf-lib, Makefile.solaris-lib: Add $(LDFLAGS) to the command line
argument when generating the shared library, to allow cross-compile
and other builds that might need to specify -L paths to needed
libraries.
Theodore Ts'o [Sat, 10 Dec 2005 00:16:40 +0000 (19:16 -0500)]
Fix bogus spaces before '!' and '?' characters in unused programs.
On Mon, Oct 31, 2005 at 01:23:53PM +0000, Martin Michlmayr wrote:
> Package: e2fsprogs
> Version: 1.38-2
> Severity: minor
>
> e2fsprogs isn't consistent in its use of spaces before an exclamation
> mark. The patch below fixed this by removing some spaces.
> (Interestingly, I couldn't find the error message in the sources where
> I noticed this inconsistency, namely "group descriptors corrupted !").
Patch applied, but none of the source files you touched are actually
compiled in e2fsprogs, and most of them weren't written by me. :-)
Theodore Ts'o [Fri, 9 Dec 2005 23:18:06 +0000 (18:18 -0500)]
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.
Theodore Ts'o [Mon, 21 Nov 2005 05:04:31 +0000 (00:04 -0500)]
Fix gcc compilation on sparc architectures in bitops.h
We no longer have the sparc assembly code in the header file any more, so we
shouldn't set _EXT2_HAVE_AS_BITOPS_. This would break compiles on the sparc
architectures when using gcc.
Theodore Ts'o [Sun, 13 Nov 2005 04:30:39 +0000 (23:30 -0500)]
Fix writing external journals on big-endian machines
Fix a bug when writing an external journal device on an big
endian machine (such as a S/390), where when the number of
block groups is zero, we never end up writing out the
primary superblock at all.
Theodore Ts'o [Wed, 9 Nov 2005 22:37:07 +0000 (18:37 -0400)]
Fix cross-compilation problems when CFLAGS contain target-specific options
Use BUILD_CCFLAGS and BUILD_LDFLAGS instead of CCFLAGS and LDFLAGS in
the build system when building files in the util directory which are
needed during the build process. This avoids potential problems when
cross-compiling some of the options are not recognized as valid by the
host compiler. (Addresses Sourceforge Bug #1261547)
Generalize the time parsing code and move it to
util.c:string_to_time(). Add new command, set_current_time, which
sets the time used to set the filesystems's time fields.
If fs->now is non-zero, use that as the time instead of the system
time when setting various filesystem fields (last modified time, last
write time, etc.)
Add extra spaces when printing the "done" message to clear out the
block number to fix a display corruption when the -s option is used to
display the progress of the test. (Addresses Debian Bug #322231)
Karel Zak [Tue, 6 Sep 2005 12:13:35 +0000 (08:13 -0400)]
Improve VFAT detection to support filesystems w/o a magic string in the superblock
The current libblkid code expects that there's magic string in FAT super
block (like "FAT12", "FAT16", ...). It's very often right, but valid FAT
super block may be without magic string too :-(
The patch from attachment fix this problem. It's inspired by HAL and
Linux kernel.
Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
That bug doesn't appear when libblkid creates new cache and checks for
all possible filesystems, because it tries ext3 before ext2. BUT when
the library only revalidate the cache it first probes for old cached
filesystem (e.g. ext2).
Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Theodore Ts'o [Mon, 8 Aug 2005 23:57:04 +0000 (18:57 -0500)]
Fix fencepost error in resize2fs caught by valgrind
There was a off-by-one fencepost error in the logic used to check if
we avoid copying zero-filled blocks when moving an inode table down by
a block or two. Thanks to valgrind for catching it. As far as I know
this fencepost error wasn't causing any actual problems, but it was
definitely a bug.
Fix Debian build rules to reflect changes in texi2html (Debian Bug #317862)
Texi2html's behavior changed recently: if it is invoked with
-split=chapter, old versions place the HTML files in the same
directory as the documentation source, whereas new versions place the
generated files in a subdirectory.
In ext2fs_add_journal_inode() check for the case where the filesystem
appears to be unmounted, but the device is still apparently busy.
This can happen when the luser doesn't bother to mount /proc and has a
bogus /etc/mtab, but still wants to mount the filesystem before using
tune2fs(?!?). Add a safety check to save him from his own stupidity,
at least on 2.6 kernels. (Addresses Debian Bug #319002)
Change gen_tarball to ignore Mercurial/quilt files (and remove BK ignores).
Since e2fsprogs is now being managed by Mercurial instead of BK,
remove BitKeeper and add ".hg", ".hgignore", ".pc", and "patches" to
the list of files/directories not included in the tar file.
Andreas Dilger [Sun, 10 Jul 2005 03:06:59 +0000 (22:06 -0500)]
This patch adds a check to use fstat or fstat64 in getsize.c if the
target is a regular file, instead of doing binary searching. It also
fixes a couple of cases where a file descriptor is leaked in the
ext2fs_getsize() routine on error.
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
This file descripts the signed-off-by procedure first used by Linus
for the Linux kernel patch submissions, and which will now be used for
e2fsprogs as well.
[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.
Fix debugfs's set_inode_fields command from silently failing.
The set_inodes_field command was silently failing when setting one of
the following fields: frag, fsize, uid_high, gid_high, and author.
The type size for these fields were set to an incorrect value in the
inode_fields table.