Theodore Ts'o [Mon, 17 Dec 2001 04:23:37 +0000 (23:23 -0500)]
Fix various gcc -Wall nits. Fixed a bug in mke2fs where a bogus
error message could be printed on an malloc() failure, and e2image
was optimized to avoid needless system calls by using the stashed
inode functions.
Theodore Ts'o [Sun, 2 Dec 2001 16:23:27 +0000 (17:23 +0100)]
Fixes necessary for e2fsprogs to work using the diet libc.
- Renamed linux/list.h to be linux/linked_list.h to work around a
problem caused by diet libc insistence to search the kernel
header files ahead of all other files in the include path,
including the user specified include files.
- Worked around a bug in diet libc which core dumps when using
putc with stderr by using fputs instead. As a bonus, this
also shaved a few bytes off of com_err.o.
- Fixed a real bug in debugfs which was detected because diet libc
was more sensitive than glibc when incorrectly using fclose()
where pclose() is required.
Theodore Ts'o [Tue, 27 Nov 2001 02:05:36 +0000 (21:05 -0500)]
unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
trying to unset the filesize limit if at all possible,
if a block device is getting opened. (The filesize limit
shouldn't be applied against writes to a block device, but
starting in 2.4.10, the kernel is doing this.)
Theodore Ts'o [Tue, 27 Nov 2001 01:00:07 +0000 (20:00 -0500)]
f_miss_blk_bmap: Add new test which checks for bug in e2fsck
where it wouldn't allocate a missing block bitmap on
filesystems with a blocksize of 2k or 4k.
Theodore Ts'o [Mon, 26 Nov 2001 20:51:14 +0000 (15:51 -0500)]
super.c (check_super_block): Make sure that if the inode table
or allocation bitmap is zero, that it is marked as
invalid, so that in pass #1, a new bitmap/inode table gets
properly allocated. (Addresses Debian Bug #116975)
Theodore Ts'o [Sat, 24 Nov 2001 21:10:52 +0000 (16:10 -0500)]
debugfs.8.in: Update manual page to document the set_super_value
and logdump commands, and move the "specifying files"
section closer to the beginning of the man page so people
won't miss it.
setsuper.c (print_possible_fields): "set_super_value -l" now
prints out the list of valid superblock fields which the
ssv command can set.
Theodore Ts'o [Fri, 9 Nov 2001 22:34:54 +0000 (17:34 -0500)]
mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
file on adding a journal to an already-mounted filesystem,
try to clear the ext2 file attributes on an already
existing .journal file so that we don't fail if on a
partially added journal to the filesystem.
Theodore Ts'o [Tue, 6 Nov 2001 00:22:02 +0000 (19:22 -0500)]
Define a new ext2 file attribute, EXT2_NOTAIL_FL,
which signals that a particular inode should not have the
last bits of data (the "tail") be merged with another
file. This is necessary to keep programs like LILO happy.
Theodore Ts'o [Mon, 5 Nov 2001 23:58:46 +0000 (18:58 -0500)]
fsck.c (interpret_type): If the "auto" type is specified, make
sure interpet_device() is called so that device
specifications which use LABEL= or UUID= are translated
into a real device name.
Andreas Dilger [Fri, 9 Nov 2001 00:56:12 +0000 (17:56 -0700)]
Support very large files with debugfs (first pass).
If a file is created with "dd if=/dev/zero of=<file> bs=1k skip=2047M"
it is created properly by the kernel, but fails to be seen properly
by debugfs - the blocks are not shown by stat <inum>, nor can they
be found by icheck. This change fixes that.
Andreas Dilger [Mon, 1 Oct 2001 22:02:20 +0000 (16:02 -0600)]
Add libuuid man pages to the RPM spec file.
Add a copyright statement to the libuuid man page which identifies it
as being under LGPL. While this is conveyed in the source code, it is
not mentioned anywhere in the man pages or other documentation.
Theodore Ts'o [Sun, 7 Oct 2001 06:13:30 +0000 (02:13 -0400)]
journal.c (clear_v2_journal_fields, e2fsck_journal_load): If the
V2 fields are set on a V1 journal superblock, or an
internal V2 journal has s_nr_users is non-zero, clear the
entire journal superblock beyond the V1 superblock. This
fixes botched V1->V2 updates.
problem.c, problem.h (PR_0_CLEAR_V2_JOURNAL): Add new problem code.
f_bad_local_jnl: New test which tests for a V2 journal with bad
fields caused by a botched V1->V2 upgrade.
Theodore Ts'o [Sun, 7 Oct 2001 01:26:27 +0000 (21:26 -0400)]
e2fsck.h, journal.c (e2fsck_move_ext3_journal): Add new function
which will automatically relocate the ext3 journal from a
visible file to an invisible journal file if the
filesystem has been opened read/write.
super.c (check_super_block): Add call to e2fsck_move_ext3_journal
problem.c, problem.h (PR_0_MOVE_JOURNAL, PR_0_ERR_MOVE_JOURNAL):
Add new problem codes.
Remove use of AC_REQUIRE which had been used to prevent AC_CANONICAL_HOST
from being called twice, since it gives recent autoconf programs
heartburn (and doesn't seem to be required anymore), anyway.
ismounted.c (check_mntent_file): We now validate the entry in
/etc/mtab to make sure the filesystem is really mounted,
since some broken distributions (read: Slackware) have
buggy boot scripts that don't initialize /etc/mtab before
checking non-root filesystems. (Slackware also doesn't
check the root filesystem separately, and reboot if the
root filesystem had changes applied to it, which is
dangerous and broken.)
com_err.texinfo: Add appropriate @node and @menu lines so that
the a valid .info file can be made. Use @deftypefun to
define functions. Change the e-mail address where bug
reports to be sent to be is the e2fsprogs maintainer.
compare.c (uuid_compare), copy.c (uuid_copy),
isnull.c (uuid_is_null), pack.c (uuid_pack),
parse.c (uuid_parse), unpack.c (uuid_unpack),
unparse.c (uuid_unparse), uuid.h, uuidP.h,
uuid_time.c (uuid_time, uuid_type, uuid_variant):
Use const for pointer variables that we don't modify. Add
the appropriate ifdef's in uuid.h to make it be C++ friendly.
Theodore Ts'o [Fri, 31 Aug 2001 01:55:26 +0000 (21:55 -0400)]
mke2fs.c (zap_sector): Now takes a third argument, which is how
many sectors to clear out. Fixed up Andreas's patch to
make it a bit more efficient/compact.
Andreas Dilger [Thu, 30 Aug 2001 21:39:04 +0000 (15:39 -0600)]
mke2fs.c (main): Zap the second sector of the disk, along with
any sectors in the same filesystem block after the superblock.
The latter will remove (for example) swapspace signatures
on 4kB+ blocksize filesystems. Also when zeroing the "end"
of the filesystem don't actually zero the start of a very
small device (less than 128kB).
Theodore Ts'o [Thu, 30 Aug 2001 20:42:09 +0000 (16:42 -0400)]
pass1.c (e2fsck_pass1): For EXT2_RESIZE_INO, allow its i_mode to
either be zero or a regular file (for compatibility with
Andreas's on-line resizing programs).
Andreas Dilger [Fri, 17 Aug 2001 09:48:11 +0000 (03:48 -0600)]
get_device_by_label.[ch], fsck.c, util.c: New interpret_spec()
function in get_device_by_label.c to allow the use of
UUID= or LABEL= when creating filesystems which use external
journal dev (e.g. mke2fs -J device=LABEL=<journal_label>).
tune2fs.c: Use superblock s_journal_uuid to locate an external
journal device instead of s_journal_dev when removing it.
Allow opening journal devices to set the label and UUID
in the ext2 superblock.
mke2fs.c, tune2fs.c: Free journal_device after use, as it is
malloc'd in interpret spec.
Theodore Ts'o [Wed, 15 Aug 2001 15:58:16 +0000 (11:58 -0400)]
mke2fs.c (PRS): Handle -O and -s options in line in the getopt
loop, so that -s and -O handling are a bit more intuitive.
(Not that they should be mixed anyway; -s is deprecated.)
Theodore Ts'o [Fri, 10 Aug 2001 23:13:11 +0000 (19:13 -0400)]
mke2fs.8.in: Slim down text describing the -O flag to remove
text that erroneously implied that all features
(including compatible flags) aren't compatible with older kernels.
Theodore Ts'o [Thu, 9 Aug 2001 08:14:04 +0000 (04:14 -0400)]
pass1.c, pass2.c, problem.c, problem.h: Fix bug introduced by
Andreas's symlink code; check_blocks() was unconditionally testing
inode_bad_map without checking to see if it existed first. Fixed
problem a different way; we now no longer check inode_bad_map at all,
since the file might not get deleted in pass 2 anyway. We move the
large file feature reconciliation code to to e2fsck_pass2(), and in
deallocate_inode() in pass2.c, we decrement the large files counter if
we're about to delete a large file.
Theodore Ts'o [Tue, 7 Aug 2001 14:17:41 +0000 (10:17 -0400)]
* journal.c (recover_ext3_journal): If s_errno is set in the
journal superblock, set the EXT2_ERROR_FS flag in the
filesystem superblock after the journal is run.
Andreas Dilger [Sat, 4 Aug 2001 07:47:01 +0000 (01:47 -0600)]
Change comments for %D and %d expansion in e2fsck problem codes. It
was not consistent which was for dirent expansion, and which was for
directory number expansion.