Commit Graph

2320 Commits (47526e3568f93a13caa347408496f1f1d48af74c)

Author SHA1 Message Date
Theodore Ts'o f6341e9c70 ext2fs_dblist_dir_iterate: Fix ABORT propagation logic
ext2fs_dblist_dir_iterate() calls ext2fs_dblist_iterate(), which calls
ext2fs_process_dir_block(), which in turn calls the helper function
db_dir_proc() which calls callback function passed into
ext2fs_dblist_dir_iterate().  At each stage the conventions for
signalling requests to abort the iteration or to signal errors
changes, db_dir_proc() was not properly mapping the abort request back
to ext2fs_dblist_iterate().

Currently db_dir_proc() is ignoring errors (i/o errors or directory
block corrupt errors) from ext2fs_process_dir_block(), since the main
user of ext2fs_dblist_dir_iterate() is e2fsck, for which this is the
correct behavior.  In the future ext2fs_dblist_dir_iterate() could
take a flag which would cause it to abort if
ext2fs_process_dir_block() returns an error; however, it's not clear
how useful this would be since we don't have a way of signalling the
exact nature of which block had the error, and the caller wouldn't
have a good way of knowing what percentage of the directory block list
had been processed.  Ultimately this may not be the best interface for
applications that need that level of error reporting.

Thanks to Vladimir V. Saveliev <vs@clusterfs.com> for pointing out
this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-23 11:39:24 -04:00
Theodore Ts'o 846be6db81 libblkid: Add more magic numbers that might mean there is a FAT filesystem
The FAT filesystem doesn't have its superblock with a set of magic
strings in a fixed location.  Therefore, we must also check for the
FAT filesystem if it looks like we have an MBR at the beginning of the
partition.  We previously checked if the first byte was a jump
instruction but that missed some USB disks with only one bootable
partition.  Now we check for the MBR signature (0x55AA at offset 510)
as well as any partition where byte 0 is \351 or \353.

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-23 09:50:11 -04:00
Theodore Ts'o d006b8cee7 e2fsck: Don't mark the filesystem invalid because of time errors
If superblock mount time or last write time is in the future, and the
user refuses to fix the problem, don't mark the filesystem as being
invalid and needing to be checked.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-23 08:20:51 -04:00
Theodore Ts'o 60702c267d Work around lame Ubuntu init scripts / installer bugs
The Ubuntu init scripts don't properly set the system time correctly
from hardware clock if the hardware clock is configured to tick local
time instead of GMT time.

Work around this as best as we can by providing an option in
/etc/e2fsck.conf which can be set on Ubuntu systems:

[options]
	buggy_init_scripts = 1

Addresses-Debian-Bug: #441093
Addresses-Ubuntu-Bug: #131201

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-22 20:43:11 -04:00
Theodore Ts'o ed773a2638 fsck: Ignore /etc/fstab entries for bind mounts
If a user specifies a bind mount with a non-zero fsck pass number, for
example:

/foo    /bar    ext3    bind,defaults   1 3

print a warning and ignore the fstab entry.

Addresses-Red-Hat-Bugzilla: #151533

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-20 15:06:35 -04:00
Theodore Ts'o 29cf185826 Add test for the case where s_inode_size is zero
Older e2fsck's would crash; e2fsck should now automatically retry
using the backup superblock if it is present.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-07 17:06:25 -04:00
Theodore Ts'o cc8fb0e69d Delete the test.img file after running the resize2fs tests
The resize2fs tests, r_move_itable and r_resize_inode, were not
deleting the test.img tmpfile after completing the test.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-07 17:03:48 -04:00
Theodore Ts'o cd538080ab e2fsck: If the superblock is corrupt, automatically retry with the backup sb
E2fsck currently only retries with the backup superblock if the
primary superblock is missing (e.g., overwritten with garbage).  If
the superblock is just corrupted enough that it looks like ext2/3/4
superblock, but it is corrupt enough that ext2fs_open2() returns an
error, e2fsck stops without retrying.  Let's fix this oversight.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-07 16:54:11 -04:00
Theodore Ts'o ba9d929d91 Don't crash if s_inode_size is zero
Any attempt to open a filesystem with s_inode_size set to zero causes
a floating point exception.  This is true for e2fsck, dumpe2fs,
e2image, etc.  Fix ext2fs_open2() so that it returns the error code
EXT2_ET_CORRUPT_SUPERBLOCK instead of crashing.

Thanks to Dean Bender for reporting this bug.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-07 16:40:25 -04:00
Theodore Ts'o 5845caa464 Use sscanf instead of atoi when parsing e2fsck options
atoi() does not check for errors so it shouldn't be used for human
input.  For example, if the user enters the command "e2fsck -C -n" and
forgets that -C requires an argument, the -n will be used as the
argument to -C, and not parsed as an option.  When using sscanf(),
this error case can be detected.

Addresses-Debian-Bug: #435381

Signed-off-by: Bernd Schubert <bs@q-leap.de>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-20 22:55:33 -04:00
Theodore Ts'o 3524625321 Update Dutch translation file from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-20 22:14:36 -04:00
Theodore Ts'o 3b302c2c0b Fix typo and clarify the uuidgen man page
Thanks to Matt Kraai for noticing the misplaced sentence inserted into
the description section.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-20 21:46:19 -04:00
Theodore Ts'o 01ff329edc Update Swedish translation file from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-03 22:25:25 -04:00
Theodore Ts'o 7c8e9ac7f8 Make sure $prefix/etc is created before installing mke2fs.conf
Fix up $(root_sysconfdir) handling misc/Makefile.in so that
make install and make uninstall works correctly when $prefix != /.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-03 22:13:38 -04:00
Theodore Ts'o 9f0288d3bb e2fsck: Allow i_size to be rounded up to the size of a VM page
Allow files to be preallocated on-disk up to the next multiple of the
system's page size without complaining about extra blocks.

Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-08-03 20:43:37 -04:00
Theodore Ts'o c5ca71df14 Add "make check" to the RPM spec file
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
2007-08-03 20:12:32 -04:00
Theodore Ts'o 4764a579b4 Fix mke2fs tests to avoid needing any significant ^M (CR) characters
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-22 16:36:51 -04:00
Eric Sandeen bd828a27e2 Fix test in ext2fs_check_desc() for inode table within block group
The test in ext2fs_check_desc() is off by one; if the inode table
goes all the way to the last block of the block group, it will
falsely assert that it has extended past it.  The last block
of a range is start + len -1, not start + len.

You can create (valid) filesystems that will cause e2fsck to complain
via one of the following mkfs commands:

mkfs.ext3 -F -b 1024 /dev/sdb1 2046000000
mke2fs -j -F -b 4096 -m 0 -N 5217280 /mnt/test/fsfile2 327680
mkfs.ext2 -F -b 1024 -m 0 -g 256 -N 3744 fsfile 1024

Addresses-Red-Hat-Bugzilla: #214765

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-22 16:00:43 -04:00
Theodore Ts'o 5a92a627f1 Properly calculate overhead in ext2fs_initialize()
For some odd geometries*, mkfs will try to allocate inode tables off
the end of the block group and fail, rather than warning that too
many inodes have been requested.

This is because when ext2fs_initialize calculates metadata overhead,
it is only adding in group descriptor blocks and the superblock
if the *last* bg contains them - but the first bg also has all of
the various metadata bits taking up space.

We need to calculate the overhead both for the first block group and
the last block groups separately, since the two different tests need
to know what the overheads are for those two cases, which may be
different.

*for example "mke2fs  -b 1024 -m 0 -g 256 -N 3745 fsfile 1024"

(Note, the test here is a little funky; the expected output is
actually a mkfs failure - but a proper failure instead of the
allocator catching the problem at the last minute)

Addresses-Red-Hat-Bugzilla: #241767

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-22 15:14:38 -04:00
Theodore Ts'o f54176369e Add Catalan translation from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-18 12:28:43 -04:00
Eric Sandeen db9097caca Fix big-endian byte-swapping bug in ext2fs_swap_inode_full()
We need to set t->i_file_acl before we test it in
ext2fs_inode_data_blocks()

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-18 11:49:47 -04:00
Theodore Ts'o d2dc78aed4 Update ChangeLog, README, RELEASE-NOTES for 1.40.2 release
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-14 09:03:17 -04:00
Theodore Ts'o febac23c12 Update tune2fs man page to include more discussion of reserved blocks
Addresses-Launchpad-bug: #47817

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-11 23:20:17 -04:00
Theodore Ts'o c4b5c45a84 Update Dutch and Vietnamese PO files from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-11 20:22:52 -04:00
Theodore Ts'o 5e9ba85c26 Fix e2fsck segfault on very badly damaged filesystems
A recent change to e2fsck_add_dir_info() to use tdb files to check
filesystems with a very large number of filesystems had a typo which
caused us to resize the wrong data structure.  This would cause a
array overrun leading to malloc pointer corruptions.  Since we
normally can very accurately predict how big the the dirinfo array
needs to be, this bug only got triggered on very badly corrupted
filesystems.

Thanks to Andreas Dilger for submitting the test case which discovered
this problem, and to Kalpak Shah for writing a random testing script
which created the test case.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-11 13:42:43 -04:00
Theodore Ts'o d46ce70486 Update Polish translation from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-10 09:45:47 -04:00
Kalpak Shah 575307cc63 e2fsck: Fix salvage_directory when the last entry's rec_len is too big
Recently, one of our customers found this message in pass2 of e2fsck
  while doing some regression testing:

  "Entry '4, 0x695a, 0x81ff, 0x0040, 0x8320, 0xa192, 0x0021' in ??? (136554) has
  rec_len of 14200, should be 26908."

  Both the displayed rec_len and the "should be" value are bogus. The
  reason is that salvage_directory sets a offset beyond blocksize
  leading to bogus messages.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-10 07:28:35 -04:00
Theodore Ts'o 48b0ea4140 Update Turkish translation from Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-09 13:13:35 -04:00
Theodore Ts'o 23edf9b467 Fix typo'ed version number in the release notes
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 23:24:19 -04:00
Theodore Ts'o b1c2a3e564 Fix debian/control file to use ${binary:Version} instead of ${Source-Version}
This is a Lintian-requested cleanup so that e2fsprogs will be
correctly built with binaryNMU's.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 21:36:59 -04:00
Theodore Ts'o a648ea60ee Fix up Lintain complaint about the "make distclean" ignoring errors
This is a Debian-specific debian/rules change, just to clean up the
packaging script.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 21:36:43 -04:00
Theodore Ts'o 58b3df7e3d Update ChangeLog, README, RELEASE-NOTES for 1.40.1 release
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 20:54:51 -04:00
Theodore Ts'o 0225face1b Add debugging printf to blkid's probe routine when original fs type failed
This particular bit of code has caused problems before, so make it
easier to debug problems caused by the probe verification looping
forever here.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 20:17:31 -04:00
Theodore Ts'o a2df22f1e9 Stop after the second '.' when parsing version numbers
Now that we are moving to x.y.z version number scheme for maintenance
releases, we ned to change ext2fs_parse_version_string and
blkid_parse_version_string to ignore the second period so we don't
have maintenance releases with a substantially bigger verison number
than the initial x.y release.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 12:37:13 -04:00
Theodore Ts'o 851bcf3fc3 Update the *.po and *.gmo files after the e2fsprogs.pot update
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 12:09:40 -04:00
Theodore Ts'o 424a3e4a23 Remove Changelog files since they're not used after the git migration
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 08:50:41 -04:00
Theodore Ts'o 714da4515e Update e2fsprogs.pot for translators
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 08:50:41 -04:00
Theodore Ts'o ac7dd696d6 Fix bug which could cause libblkid to loop forever
When revalidating a partition where there is obsolete information in
/etc/blkid.tab, we end up freeing a the type tag without clearing
dev->bid_type, causing blkid_verify() to loop forever.

Addresses-Debian-Bug: #432052

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 08:50:41 -04:00
Theodore Ts'o 73d4f8ccaa Update French and Dutch translation files
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-08 08:50:41 -04:00
Theodore Ts'o fd6ee4ee2e Update Vietnamese PO file from the Translation Project
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 23:30:36 -04:00
Theodore Ts'o 29a5deed21 Improve the config/parse_types.sh helper script
Fix a potential security problem if e2fsprogs is built as root (as
Gentoo does!).  In addition fix the script and how it is called from
the configure script so that it does the right thing when
cross-compiling.

Fixes-Gentoo-bug: #146903

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 19:55:03 -04:00
Theodore Ts'o a3f464ffe7 Fix bogus strip permission errors when building under Debian
When building the e2fsprogs dpkg's, the dh_strip command emits a large
number of error messages caused by the permissions not being right.  So
run dh_fixperms before running dh_strip.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 14:51:18 -04:00
Theodore Ts'o d48bc60459 Compile the default mke2fs.conf into mke2fs program
People are getting surprised by mke2fs creating filesystems with
different defaults than earlier versions of mke2fs if mke2fs.conf is
not present.  Having gotten two complaints about ramdisks getting
created by with 4k blocksizes which then blow up when the ramdisk is
mounted with a "Magic mismatch, very weird" error message from the
kernel, let's fix this by making sure mke2fs has a built-in version of
mke2fs.conf file.  People can still override the built-in version of
mke2fs.conf by editing /etc/mke2fs.conf, but this maintains the
previous behavior.

Addresses-Sourceforge-Bug: #1745818

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 14:27:30 -04:00
Theodore Ts'o 6f890e516d Add new function: profile_set_default()
profile_set_default() sets the value of the pseudo file "<default>".
If the file "<default>" had previously been passed to profile_init(),
then def_string parameter will be parsed and used as the profile
information for the "<default>" file.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 13:03:35 -04:00
Theodore Ts'o 6bde5c28ba Add PROFILE_FILE_NO_RELOAD flag which is used by profile_update_file()
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-04 10:36:15 -04:00
Theodore Ts'o 1a191d6648 e2fsck: Detect recursive loops in @-expansions
The Turkish translation has a bug in it where it has the translation
of "E@e '%Dn' in %p (%i)" to "E@E".  This causes @E to be expanded at
@E, recursively, forever, until the stack fills up e2fsck core dumps.

Fix it by stopping after a recursive depth of 10, which is far more
than we need.

Addresses-Sourceforge-Bug: 1646081

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-07-02 19:04:31 -04:00
Theodore Ts'o 4b4df799f1 Make it clear in an error message that it is mk_cmds that is complaining
Obviates gentoo patch: e2fsprogs-1.32-mk_cmds-cosmetic.patch

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-06-30 20:05:41 -04:00
Theodore Ts'o 6c9cc58375 Set LC_ALL instead of LANG in the test suite config
LC_ALL is the "high priority" environment variable that overrides all
others, where as LANG is the lowest priorty environment variable.  If
LC_ALL is set, it doesn't matter whether LANG, LANGUAGE, LC_COLLATE,
LC_MESSAGES, and the all the rest are set.  This will assure that the
locale when running the test suites is the "C" locale.

Obviates Gentoo patch: e2fsprogs-1.38-tests-locale.patch

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-06-30 19:52:11 -04:00
Theodore Ts'o bcafb8d76e Add .gitignore file
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-06-30 17:01:42 -04:00
Theodore Ts'o 59fff333e9 Add .git directory to set of files to be ignored when building tarballs
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-06-30 16:47:38 -04:00