Whamcloud - gitweb
tools/e2fsprogs.git
11 years agotests: add basic test case for e2scan v1.42.3-lustre
Andreas Dilger [Fri, 13 Apr 2012 19:24:30 +0000 (13:24 -0600)]
tests: add basic test case for e2scan

Add a simple test to verify that e2scan is detecting the correct
files in the filesystem based on the modification time.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2scan: a tool for fast namespace/inode scanning
Andreas Dilger [Fri, 13 Apr 2012 19:17:37 +0000 (13:17 -0600)]
e2scan: a tool for fast namespace/inode scanning

e2scan is a tool for efficiently scanning inodes for changes,
or all inodes, and then generating pathnames for the inodes
of interest.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: verify directory optimize with dir_data
Bobi Jam [Tue, 29 May 2012 07:19:57 +0000 (01:19 -0600)]
tests: verify directory optimize with dir_data

Verify that the extended dir_data in the dirent is correctly
processed when running "e2fsck -fD" to optimize the htree
directory layout.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: add basic tests for dir_data feature
Andreas Dilger [Fri, 13 Apr 2012 19:42:42 +0000 (13:42 -0600)]
tests: add basic tests for dir_data feature

Signed-off-by: Pravin Shelar <pravin@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: add support for dir_data feature
Andreas Dilger [Fri, 13 Apr 2012 19:39:26 +0000 (13:39 -0600)]
e2fsck: add support for dir_data feature

Add support for the INCOMPAT_DIRDATA feature, which allows
storing extra data in the directory entry beyond the name.
This allows the Lustre File IDentifier to be accessed in
an efficient manner, and would be useful for expanding a
filesystem to allow more than 2^32 inodes in the future.

Signed-off-by: Pravin Shelar <pravin@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoext2fs: add readahead method to improve scanning
Andreas Dilger [Fri, 13 Apr 2012 18:58:53 +0000 (12:58 -0600)]
ext2fs: add readahead method to improve scanning

Add a readahead method for prefetching ranges of disk blocks.
This is useful for inode table scanning, and other large
contiguous ranges of blocks, and may also prove useful for
random block prefetch, since it will allow reordering of the
IO without waiting synchronously for the reads to complete.

It is currently using the posix_fadvise(POSIX_FADV_WILLNEED)
interface, as this proved most efficient during our testing

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agodebugfs: dump "fid" and "lma" xattrs on inode stat
Andreas Dilger [Fri, 13 Apr 2012 18:55:45 +0000 (12:55 -0600)]
debugfs: dump "fid" and "lma" xattrs on inode stat

Print out the Lustre "fid" and "lma" contents for stat, if
present, to simplify debugging.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: add Lustre lfsck tool
Andreas Dilger [Fri, 13 Apr 2012 08:32:19 +0000 (02:32 -0600)]
e2fsck: add Lustre lfsck tool

The lfsck tool, in conjunction with e2fsck, build a DB4 database
of all the inodes and objects on the MDT and OST filesystems.

The lfsck tool combines the databases on the Lustre client,
and can verify that all of the objects referenced by inodes
exist, are not referenced by two inodes, and have a parent
inode.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoext2fs: check if Lustre filesystem is mounted
Andreas Dilger [Fri, 13 Apr 2012 08:16:24 +0000 (02:16 -0600)]
ext2fs: check if Lustre filesystem is mounted

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: verify large xattr inode support
Andreas Dilger [Fri, 13 Apr 2012 08:14:16 +0000 (02:14 -0600)]
tests: verify large xattr inode support

Verify that inodes with large EAs in a secondary inode are working:
* EA inode needs to have EA_INODE_FL set
* EA inode should reference parent inode number+generation

Signed-off-by: Kalpak Shah <kalpak@sun.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: add support for xattrs in external inodes
Andreas Dilger [Fri, 13 Apr 2012 08:04:53 +0000 (02:04 -0600)]
e2fsck: add support for xattrs in external inodes

Add support for the INCOMPAT_EA_INODE feature, which stores large
extended attributes into an external inode instead of data blocks.
The inode is referenced by the e_value_inum field (formerly the
unused e_value_block field) from the extent header, and stores the
xattr data starting at byte offset 0 in the inode data block.

The xattr inode stores the referring inode number in its i_mtime,
and the parent i_generation in its own i_generation, so that there
is a solid linkage between the two that e2fsck can verify.  The
xattr inode is itself marked with EXT4_EA_INODE_FL as well.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: clean up xattr checking code, add test
Andreas Dilger [Fri, 13 Apr 2012 08:01:12 +0000 (02:01 -0600)]
e2fsck: clean up xattr checking code, add test

Clean up xattr header/list processing for in-inode xattrs instead
of doing lots of explicit pointer math.  Add a regression test for
in-inode xattrs.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: handle preallocation for large PAGE_SIZE
Andreas Dilger [Fri, 13 Apr 2012 07:59:31 +0000 (01:59 -0600)]
e2fsck: handle preallocation for large PAGE_SIZE

Fix handling of block preallocation support in cases where the kernel
PAGE_SIZE is larger than the filesystem blocksize.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: add checks for journal checksum feature
Andreas Dilger [Fri, 13 Apr 2012 07:50:29 +0000 (01:50 -0600)]
tests: add checks for journal checksum feature

f_jchksum_bblk: journal checksum feature where there is a corrupt
block in an uncommitted transaction
f_jchksum_blast_trans: incomplete last trans not considered bad
f_jchksum_remount: check journal mounted by a kernel without
CHECKSUM support after CHECKSUM is in journal superblock

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: create random filesystem, corrupt, e2fsck
Andreas Dilger [Fri, 13 Apr 2012 07:53:39 +0000 (01:53 -0600)]
tests: create random filesystem, corrupt, e2fsck

The f_random_corruption test enables a random subset of filesystem
features, picks one of the valid filesystem block and inode sizes,
and a random device size and creates a new filesystem with those
parameters.

It is possible to disable the running of the test by setting the
environment variable F_RANDOM_CORRUPTION=skip.  By default the test
script is run only one time, but setting the LOOP_COUNT variable
allows the test to run multiple times.

If the script is running as root the filesystem is mounted and
populated with file data to allow a more useful test filesystem
to be generated.  In some cases the kernel may not support the
requested filesystem features and the filesystem cannot be mounted.
This is not considered a test failure.

The resulting filesystem is corrupted with both random data and
by shifting data from one part of the device to another and then
repaired by e2fsck.  In some rare cases the random corruption is
severe enough that the filesystem is not recoverable (e.g. small
filesystem with no backup superblock has bad superblock corruption)
but in most cases "e2fsck -fy" should be able to fix all errors
in some way.

After e2fsck has repaired the filesystem, it is optionally mounted
(if the environment variable MOUNT_AFTER_CORRUPTION=yes is set) and
the test files created in the filesystem are deleted.  This verifies
that the fixes in the filesystem are sufficient for the kernel to
use the filesystem without error.  Since there is some possibility
of the kernel oopsing if there is a filesystem bug, this part of
the test is not enabled by default.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: add test cases for inode badness
Andreas Dilger [Fri, 13 Apr 2012 07:23:17 +0000 (01:23 -0600)]
tests: add test cases for inode badness

Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: track errors/badness found for each inode
Andreas Dilger [Fri, 13 Apr 2012 07:13:58 +0000 (01:13 -0600)]
e2fsck: track errors/badness found for each inode

The present e2fsck code checks the inode, per field basis.  It
doesn't take into consideration to total sanity of the inode.
This may cause e2fsck turning a garbage inode into an apparently
sane inode ("It is a vessel of fertilizer, and none may abide
its strength.").

The following patch adds a heuristics to detect the degree of
badness of an inode. icount mechanism is used to keep track of
the badness of every inode.  The badness is increased as various
fields in inode are found to be corrupt.  Badness above a certain
threshold value results in deletion of the inode.  The default
badness threshold value is 7, it can be specified to e2fsck
using "-E inode_badness_threshold=<value>"

This can avoid lengthy pass1b shared block processing, where a
corrupt chunk of the inode table has resulted in a bunch of
garbage inodes suddenly having shared blocks with a lot of good
inodes (or each other).

Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: add tests for expanding inode extra size
Andreas Dilger [Fri, 13 Apr 2012 00:05:03 +0000 (18:05 -0600)]
tests: add tests for expanding inode extra size

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: add support for expanding the inode size
Andreas Dilger [Fri, 13 Apr 2012 00:03:37 +0000 (18:03 -0600)]
e2fsck: add support for expanding the inode size

This patch adds a "-E expand_extra_isize" feature which makes sure
that _every_ used inode has i_extra_isize >= s_min_extra_isize if
s_min_extra_isize is set. Else it makes sure that i_extra_isize
of every inode is equal to sizeof(ext2_inode_large) - 128.

This is useful for the case where nanosecond timestamps or 64-bit
inode version fields are required for all inodes in the filesystem.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: ignore xattr feature in backup superblocks
Andreas Dilger [Fri, 13 Apr 2012 18:25:25 +0000 (12:25 -0600)]
e2fsck: ignore xattr feature in backup superblocks

Since the xattr feature is enabled automatically by the kernel,
it can cause spurious e2fsck runs on a clean filesystem due to
differences between the primary and backup superblocks.

Signed-off-by: Eric Sandeen <esandeen@redhat.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: add tests for uninitialized bitmaps
Andreas Dilger [Thu, 12 Apr 2012 23:52:44 +0000 (17:52 -0600)]
tests: add tests for uninitialized bitmaps

Various tests for handing uninitialized block and inode bitmaps,
and inodes beyond the in-use high watermark.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotune2fs: warn if the filesystem journal is dirty
Andreas Dilger [Thu, 12 Apr 2012 23:38:13 +0000 (17:38 -0600)]
tune2fs: warn if the filesystem journal is dirty

Running tune2fs on a filesystem with an unrecovered journal can
cause the tune2fs settings to be reverted when the journal is
replayed.  Print a warning if this is detected so that the user
isn't surprised if it happens.

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: allow deleting or zeroing shared blocks
Andreas Dilger [Thu, 12 Apr 2012 23:32:53 +0000 (17:32 -0600)]
e2fsck: allow deleting or zeroing shared blocks

E2fsck fixes files that are found to be sharing blocks by cloning
the shared blocks and giving each file a private copy in pass 1D.

Allowing all files claiming the shared blocks to have copies can
inadvertantly bypass access restrictions.  Deleting all the files,
zeroing the cloned blocks, or placing the files in the /lost+found
directory after cloning may be preferable in some secure environments.

The following patches implement config file and command line options
in e2fsck that allow pass 1D behavior to be tuned according to site
policy.  It adds two extended options and config file counterparts.
On the command line:

 -E clone=dup|zero

    Select the block cloning method.  "dup" is old behavior,
    and is the default.  "zero" is a new method that substitutes
    zero-filled blocks for the shared blocks in all the files
    that claim them.

 -E shared=preserve|lost+found|delete

    Select the disposition of files containing shared blocks.
    "preserve" is the old behavior which remains the default.
    "lost+found" causes files to be unlinked after cloning so
    they will be reconnected to /lost+found in pass 3.
    "delete" skips cloning entirely and simply deletes the files.

In the config file:
  [options]
      clone=dup|zero
      shared=preserve|lost+found|delete

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: parse config file before command-line opts
Andreas Dilger [Thu, 12 Apr 2012 23:24:55 +0000 (17:24 -0600)]
e2fsck: parse config file before command-line opts

The patch changes the order that the config file and command line
are parsed so that command line has precedence.  It also parses
the -E option for every occurrence, otherwise the -E option is
not cumulative.

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: invalid value of in-inode EA offset
Andreas Dilger [Thu, 12 Apr 2012 22:57:40 +0000 (16:57 -0600)]
tests: invalid value of in-inode EA offset

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: extent pointing to non-existent block
Andreas Dilger [Fri, 25 May 2012 07:01:28 +0000 (01:01 -0600)]
tests: extent pointing to non-existent block

Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: workaround for old extents tests
Andreas Dilger [Thu, 12 Apr 2012 22:15:07 +0000 (16:15 -0600)]
e2fsck: workaround for old extents tests

The e2fsck_ext2fs_extent_get() part of this patch is a workaround
to handle problems with old Lustre extents patches that didn't
clear the ee_start_hi or ei_leaf_hi fields.

That has been fixed for long time and could be removed as soon
as the f_extent_* tests are fixed to clear these _hi fields.
Otherwise the extents are all marked as corrupt and it ruins those
tests value.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: verify > 65000 subdirectories
Andreas Dilger [Thu, 12 Apr 2012 22:02:12 +0000 (16:02 -0600)]
tests: verify > 65000 subdirectories

Add test case to verify nlink handling of large directories.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agobuild: add .spec file for SLES11 for packaging
Andreas Dilger [Fri, 13 Apr 2012 08:23:12 +0000 (02:23 -0600)]
build: add .spec file for SLES11 for packaging

Include the upstream SLES11 .spec file to ensure the packages we
build match the upstream packages.  Any later patches that change
the packaging should patch the .spec file appropriately.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agobuild: add RHEL6 .spec file for packaging
Andreas Dilger [Fri, 13 Apr 2012 08:19:19 +0000 (02:19 -0600)]
build: add RHEL6 .spec file for packaging

Include the upstream RHEL6 .spec file to ensure the packages we
build match the upstream packages.  Any later patches that change
the packaging should patch the .spec file appropriately.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agobuild: update e2fsprogs.spec for distro builds
Andreas Dilger [Thu, 12 Apr 2012 21:39:04 +0000 (15:39 -0600)]
build: update e2fsprogs.spec for distro builds

Add the distro version to the RPM release number, so that it the
RPM names do not conflict.

Allow the RPM built from upstream to replace the split packages
provided by the distros.  At some point in the future it may be
desirable to also split the RPM built by this spec file, but this
is complicated by the fact that SLES and RHEL have different splits.

Signed-off-by: Girish Shilamkar <girish.shilamkar@sun.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agofilefrag: improvements to filefrag FIEMAP handling
Andreas Dilger [Thu, 12 Apr 2012 21:31:35 +0000 (15:31 -0600)]
filefrag: improvements to filefrag FIEMAP handling

* add support for multiple-device filesystems
* add -k option to print extents in kB-sized units (like df -k)
* add -b {blocksize} to print extents in blocksize units
* add -e option to use in extent format, even for non-extent files.
* add -X option to print extents in hexadecimal format

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoblkid: fix ZFS device detection
Andreas Dilger [Thu, 12 Apr 2012 21:26:49 +0000 (15:26 -0600)]
blkid: fix ZFS device detection

Fix the ZFS device detection by looking at multiple uberblocks to
see if any are present, rather than looking for the ZFS boot block
which is not always present.

There may be up to 128 uberblocks, but the first 4 are not written
to disk on a newly-formatted filesystem so check several of them at
different offsets within the uberblock array.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agoe2fsck: improve in-inode xattr checks
Andreas Dilger [Thu, 12 Apr 2012 21:23:47 +0000 (15:23 -0600)]
e2fsck: improve in-inode xattr checks

Add check for in-inode xattr to make sure that it is not referencing
an offset that is beyond the end of the inode.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agobuild: fix build warnings for MacOS
Andreas Dilger [Fri, 27 Apr 2012 05:22:45 +0000 (23:22 -0600)]
build: fix build warnings for MacOS

The BLKFLSBUF and FDFLUSH ioctls are Linux specific, and do not
really have anything to do with __GNUC__ (which is also used on
OS/X and Solaris).  Only print these warnings on Linux systems.

O_DIRECT is not defined in the OS/X headers.  Since this is only a
performance enhancement, and not required for correct operation,
just ignore it if undefined.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agotests: use make rules to run tests in parallel
Andreas Dilger [Wed, 23 May 2012 21:05:21 +0000 (15:05 -0600)]
tests: use make rules to run tests in parallel

Change the e2fsck/mke2fs/tune2fs/e2image/debugfs regression tests
to be driven by Makefile rules instead of by a script loop.  This
allows the tests to be run in parallel like a build and reduces
testing time significantly.

One major change to the tests themselves is to printing the test
name, description, and status together after the test has passed
or failed, to avoid mixing lines from the tests.  The other major
change is to use unique filenames for each test, which was mostly
handled already via b4db1e4c7461a50e18c9fd135b9f1ba6f27e4390, but
in some cases temporary files are changed to use $test_name.tmp to
avoid any collision between running tests.

On my old 2-CPU system it reduced the testing time from 160s to 40s.
Most of the savings is running the MMP test delays going in parallel,
but it still takes the length of the slowest test, f_mmp_garbage.
There will be ongoing benefit in the future as more tests are added
since the wallclock time will not substantially increase.

Tests were run with "make -j", "make -j4", "make -j12", "make -j16",
and "make -j24" repeatedly without any test failures.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agobuild: update version for Lustre build
Andreas Dilger [Thu, 12 Apr 2012 20:00:07 +0000 (14:00 -0600)]
build: update version for Lustre build

Add Whamcloud-specific build version to distinguish packages from
upstream packages.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
11 years agolibext2fs: don't inline ext2fs_open_file() and ext2fs_stat()
Andreas Dilger [Mon, 28 May 2012 14:54:08 +0000 (10:54 -0400)]
libext2fs: don't inline ext2fs_open_file() and ext2fs_stat()

The creation of inline wrappers ext2fs_open_file() and ext2fs_stat()
in commit c859cb1de0d624caa0779fb17d1a53766143136e in ext2fs.h caused
difficulties with the use of headers, since the headers for open64()
and stat64() may already be included (and skip the declaration of the
64-bit variants) before ext2fs.h is ever read.  There is no real way
to solve the missing prototypes and resulting compiler warnings inside
ext2fs.h.

Since ext2fs_open_file() and ext2fs_stat() are not performance
critical operations, they do not need to be inline functions at all,
and the needed function headers can be handled properly in one file.

Similarly, posix_memalloc() was having difficulties with headers, and
was being defined in ext2fs.h, but it is now only being used by a
single file, so move the required header there.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agolibquota: remove quota_is_on() which was the last user of quotactl()
Theodore Ts'o [Mon, 28 May 2012 14:38:06 +0000 (10:38 -0400)]
libquota: remove quota_is_on() which was the last user of quotactl()

The quotactl() system call was being used without the use of a
function prototype.  On closer examination, it turns out the one user
of that system call was the quota_is_on() function, which is not used
by e2fsprogs at all.  Since libquota is an e2fsprogs-internal library,
and not one that we plan to export any time soon, the simplest thing
to do is to simply remove quota_is_on(), which in turn allows us to
remove all of the infrastructure around using the Linux-specific
quotactl() system call.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoe2fsck: fix checks done for mounted vs. read-only
Andreas Dilger [Thu, 24 May 2012 21:34:56 +0000 (15:34 -0600)]
e2fsck: fix checks done for mounted vs. read-only

Currently, if e2fsck is run without the "-n" flag (i.e. it
might modify the filesystem), there is no guarantee that it will
open the filesystem with the EXCLUSIVE flag (i.e. O_EXCL) to
prevent the block device from being checked (in most cases this
means mounted, but it could also be an MD/LVM member device).

Conversely, if e2fsck is run with "-n" (i.e. read-only), and
/etc/mtab or /proc/mounts does not report the block device as
mounted then e2fsck thinks the filesystem is unmounted.  In this
case, e2fsck incorrectly sets the EXCLUSIVE flag, which causes
the check to fail, even though e2fsck is running read-only.

To fix this, do not open with EXCLUSIVE if it is a read-only check,
and always open with EXCLUSIVE if the filesystem might be changed.
This also prevents filesystem mounts while e2fsck is running.

Also refuse allow e2fsck to run at all if the filesystem is BUSY.
The e2fsck check_mount() was checking for MOUNTED, but not BUSY,
and it should refuse to run outright if the block device is BUSY.
The previous MOUNTED heuristics pre-date the O_EXCL reservation
by the kernel, so there could be uncertainty due to stale /etc/mtab
data, but with newer kernels a busy device should never be modified.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agolibquota: add missing time.h include
Mike Frysinger [Mon, 28 May 2012 14:21:19 +0000 (10:21 -0400)]
libquota: add missing time.h include

This code uses time() but doesn't include time.h leading to:
quotaio.c:89:2: warning: implicit declaration of function 'time'

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agolibext2fs: fix rbtree backend for extent lengths greater than 2^32
Eric Sandeen [Mon, 28 May 2012 02:13:39 +0000 (22:13 -0400)]
libext2fs: fix rbtree backend for extent lengths greater than 2^32

For a completely full filesystem with more than 2^32 blocks, the
rbtree bitmap backend can assemble an extent of used blocks which is
longer than 2^32.  If it does, it will overflow ->count, and corrupt
the rbtree for the bitmaps.

Discovered by completely filling a 32T filesystem using fallocate, and
then observing debugfs, dumpe2fs, and e2fsck all behaving badly.

(Note that filling with only 31 x 1T files did not show the problem,
because freespace was fragmented enough that there was no sufficiently
long range of used blocks.)

Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agodebugfs: fix strtoblk for 64bit block numbers
Eric Sandeen [Mon, 28 May 2012 02:11:58 +0000 (22:11 -0400)]
debugfs: fix strtoblk for 64bit block numbers

Affects icheck, freeb, setb, testb...

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agoRemove unnecessary escape before tab in man pages
Theodore Ts'o [Mon, 28 May 2012 02:03:39 +0000 (22:03 -0400)]
Remove unnecessary escape before tab in man pages

Also fixed a number of other minor nits in the resize2fs and e2image
man pages.

Addresses-Debian-Bug: #674453, #674694

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoe2fsck: fix precedence bug in built-in quota support
Theodore Ts'o [Tue, 22 May 2012 01:58:39 +0000 (21:58 -0400)]
e2fsck: fix precedence bug in built-in quota support

The operator precedence bug means that we might pay atteion to
s_grp_quota_inum even if the RO_COMPAT_QUOTA feature flag is clear.
However, fortunately, this is unlikely to happen in practice.

Cc: Aditya Kali <adityakali@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoe2fsck: fix 64-bit journal support
Theodore Ts'o [Tue, 22 May 2012 01:30:45 +0000 (21:30 -0400)]
e2fsck: fix 64-bit journal support

64-bit journal support was broken; we weren't using the high bits from
the journal descriptor blocks!  We were also using "unsigned long" for
the journal block numbers, which would be a problem on 32-bit systems.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agotests: fix f_jnl_64bit so that it actually has a 64-bit journal
Theodore Ts'o [Mon, 21 May 2012 15:03:16 +0000 (11:03 -0400)]
tests: fix f_jnl_64bit so that it actually has a 64-bit journal

The previous image did not have a 64-bit journal so it wouldn't
properly test the 64-bit journal format.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agolibe2p: teach e2p_jrnl_feature2string() about the 64-bit journal feature
Theodore Ts'o [Mon, 21 May 2012 14:59:01 +0000 (10:59 -0400)]
libe2p: teach e2p_jrnl_feature2string() about the 64-bit journal feature

This will allow dumpe2fs to correctly display the 64-bit journal
feature, if it is enabled.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoUpdate Release Notes, Changelogs, version.h, etc. for 1.42.3 release v1.42.3
Theodore Ts'o [Mon, 14 May 2012 20:08:47 +0000 (16:08 -0400)]
Update Release Notes, Changelogs, version.h, etc. for 1.42.3 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoChange pkg-config files so that both <et/com_err.h> and <com_err.h> work
Theodore Ts'o [Mon, 14 May 2012 16:45:54 +0000 (12:45 -0400)]
Change pkg-config files so that both <et/com_err.h> and <com_err.h> work

Change the include path in the Cflags field so that #include
<lib/foo.h> and <foo.h> will work.  We had originally used a C flags
which allowed <foo.h> to work, but many applications (especially those
not using pkg-config) had been using the <lob/foo.h> formulation which
didn't require an explicit -I{$includedir} option to the C compiler.

If those applications then converted over to pkg-config, and the
e2fsprogs libraries were installed with a prefix other than /usr, so
that the header files were in some directory such as
/usr/local/include, a program that used #include <lib/foo.h> would
fail to compile.

So change the pkg-config files to include both -I{$includedir} and
-I{$includir}/lib.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agolibext2fs: fix bug in unix_io corrupted > 16TB file systems on 32-bit systems
Theodore Ts'o [Mon, 14 May 2012 14:55:09 +0000 (10:55 -0400)]
libext2fs: fix bug in unix_io corrupted > 16TB file systems on 32-bit systems

The code was assuming that "unsigned long" was 64-bit, which of course
it isn't on 32-bit systems.  This caused blocks to get written to the
wrong place.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agodumpe2fs: fix 64-bit block numbers on 32-bit systems
Theodore Ts'o [Mon, 14 May 2012 05:59:32 +0000 (01:59 -0400)]
dumpe2fs: fix 64-bit block numbers on 32-bit systems

Fix bug which caused 64-bit block numbers to be incorrectly printed on
systems with 32-bit longs.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoTeach build system to install relative symlinks if requested
Theodore Ts'o [Sun, 13 May 2012 03:13:24 +0000 (23:13 -0400)]
Teach build system to install relative symlinks if requested

Add a configure option, --enable-relative-symlinks, which will use
relative symlinks for the ELF shared library files.

Addresses-Sourceforge-Bug: #3520767

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoInclude LDFLAGS when building BSD libraries
Theodore Ts'o [Sat, 12 May 2012 02:21:08 +0000 (22:21 -0400)]
Include LDFLAGS when building BSD libraries

Addresses-Sourceforge-Bug: #3517272

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoFix parallel (make -j) build
Matthias Andree [Fri, 11 May 2012 23:14:30 +0000 (19:14 -0400)]
Fix parallel (make -j) build

Add a few dependencies where needed, so that "make -j17 check" now
works.

Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agoFix bashisms
Matthias Andree [Fri, 11 May 2012 23:14:30 +0000 (19:14 -0400)]
Fix bashisms

These break the self-test suite on *BSD, and on some Linux distros
where /bin/sh is not implemented by bash.

Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
11 years agoReserve the codepoints for the INCOMPAT features LARGEDATA and INLINEDATA
Theodore Ts'o [Fri, 11 May 2012 22:39:27 +0000 (18:39 -0400)]
Reserve the codepoints for the INCOMPAT features LARGEDATA and INLINEDATA

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
11 years agoSupport systems without posix_memalign() and memalign()
Theodore Ts'o [Wed, 2 May 2012 18:21:28 +0000 (14:21 -0400)]
Support systems without posix_memalign() and memalign()

MacOS 10.5 doesn't have posix_memalign() nor memalign(), but it does
have valloc().  The Android SDK would like to be built on MacOS 10.5,
so I've added support for a good-enough emulation of memalign()'s
functionality using valloc(), with an explicit test to make sure
valloc() is returning a pointer which is sufficiently aligned given
the requested alignment.  This won't work if you try to operate on a
file system with a 16k blocksize using an e2fsprogs built on MacOS
10.5 system, but it is good enough for the common case of 4k
blocksize file systems, and we will let the memory allocation fail in
the alignment is not good enough.

I've also added a unit test for ext2fs_get_memalign() so we can be
sure it's working as expected.  I've tested the code paths with
HAVE_POSIX_MEMALIGN defined, HAVE_POSIX_MEMALIGN undefined, and
HAVE_POSIX_MEMALIGN and HAVE_MEMALIGN undefined on an x86 Linux
system, and so I know the valloc() code path works OK.  The simplistic
(and less safe) patch at:

https://trac.macports.org/attachment/ticket/33692/patch-lib-ext2fs-inline.c.diff

Shows that using valloc() apparently works OK for MacOS 10.5 (but if
it doesn't the unit test will catch a problem).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: factor out I/O buffer allocation
Theodore Ts'o [Mon, 7 May 2012 18:41:49 +0000 (14:41 -0400)]
libext2fs: factor out I/O buffer allocation

Create a new function, io_channel_alloc_buf() which allocates I/O
buffers with appropriate alignment if we are using direct I/O.  The
original code was sometimes using a larger alignment factor than
necessary, and would always request an aligned memory buffer even when
it was not necessary since the block device was not opened with
O_DIRECT.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: make read_bitmaps() more efficient when using direct I/O
Theodore Ts'o [Mon, 7 May 2012 18:30:31 +0000 (14:30 -0400)]
libext2fs: make read_bitmaps() more efficient when using direct I/O

Read in a full block for each allocation bitmap, to avoid using a
kernel bounce buffer when using direct I/O.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: refactor Direct I/O alignment requirement calculations
Theodore Ts'o [Mon, 7 May 2012 17:25:44 +0000 (13:25 -0400)]
libext2fs: refactor Direct I/O alignment requirement calculations

Create a new function, ext2fs_get_dio_alignment(), which returns the
alignment requirements for direct I/O.  This way we can factor out the
code from MMP and the Unix I/O manager.  The two modules weren't
consistently calculating the alignment factors, and in particular MMP
would sometimes use a larger alignment factor than was strictly
necessary.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: move the alignment field from unix_io to the io_manager
Theodore Ts'o [Mon, 7 May 2012 16:56:07 +0000 (12:56 -0400)]
libext2fs: move the alignment field from unix_io to the io_manager

The align field which indicated the required data alignment of data
buffers was stored in a field specific to the unix_io manager.  Move
it to the top-level io_channel structure so it can be better
generalized.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agotests: add new tests f_jnl_32bit and f_jnl_64bit
Theodore Ts'o [Wed, 2 May 2012 20:28:48 +0000 (16:28 -0400)]
tests: add new tests f_jnl_32bit and f_jnl_64bit

Add regression tests which make sure e2fsprogs understands the current
32-bit and 64-bit journal format.  If a patch breaks the on-disk
format, these tests should warn us about that.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoe2fsck: quiet harmless inode/blocks errors
Andreas Dilger [Tue, 24 Apr 2012 20:22:48 +0000 (16:22 -0400)]
e2fsck: quiet harmless inode/blocks errors

Don't consider only an error in the superblock summary as incorrect.
The kernel does not update this field except at unmount time, so
don't print errors during a "-n" run if there is nothing else wrong.
Any other unfixed errors will themselves mark the filesystem invalid.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agoe2fsck,libquota: Update quota only if its inconsistent
Aditya Kali [Tue, 24 Apr 2012 18:46:08 +0000 (14:46 -0400)]
e2fsck,libquota: Update quota only if its inconsistent

Currently fsck recomputes quotas and overwrites quota files
whenever its run. This causes unnecessary modification of
filesystem even when quotas were never inconsistent. We also
lose the limits information because of this. With this patch,
e2fsck compares the computed quotas to the on-disk quotas
(while updating the in-memory limits) and writes out the
quota inode only if it is inconsistent.

Signed-off-by: Aditya Kali <adityakali@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoe2fsck: Fix check for hidden quota files
Aditya Kali [Tue, 24 Apr 2012 18:36:42 +0000 (14:36 -0400)]
e2fsck: Fix check for hidden quota files

Currently e2fsck always incorrectly detects that quota inodes
need to be hidden (even if they are already hidden) and
modifies the superblock unnecessarily. This patch fixes the
check for hidden quota files and avoids modifying the
filesystem if quota inodes are already hidden.
Also, zero-out the old quota inode so that next fsck scan
doesn't complain.

Signed-off-by: Aditya Kali <adityakali@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agodebugfs: cleanup in do_show_debugfs_params
Zheng Liu [Tue, 24 Apr 2012 18:32:30 +0000 (14:32 -0400)]
debugfs: cleanup in do_show_debugfs_params

Remove 'out' variable and replace fprintf with printf.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agotune2fs: fix man page indentation
Aditya Kali [Tue, 24 Apr 2012 18:26:13 +0000 (14:26 -0400)]
tune2fs: fix man page indentation

The indentation in tune2fs man page was wrong towards the
end. Also, there was extra '[' in the SYNOPSIS section.

Signed-off-by: Aditya Kali <adityakali@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update vi.po (from translationproject.org)
Trần Ngọc Quân [Sun, 22 Apr 2012 19:38:43 +0000 (15:38 -0400)]
po: update vi.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update sv.po (from translationproject.org)
Göran Uddeborg [Sun, 22 Apr 2012 19:38:43 +0000 (15:38 -0400)]
po: update sv.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update pl.po (from translationproject.org)
Jakub Bogusz [Sun, 22 Apr 2012 19:38:43 +0000 (15:38 -0400)]
po: update pl.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update nl.po (from translationproject.org)
Benno Schulenberg [Sun, 22 Apr 2012 19:38:43 +0000 (15:38 -0400)]
po: update nl.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update fr.po (from translationproject.org)
Samuel Thibault [Sun, 22 Apr 2012 19:38:43 +0000 (15:38 -0400)]
po: update fr.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update de.po (from translationproject.org)
Philipp Thomas [Sun, 22 Apr 2012 19:38:42 +0000 (15:38 -0400)]
po: update de.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agopo: update cs.po (from translationproject.org)
Petr Pisar [Sun, 22 Apr 2012 19:38:42 +0000 (15:38 -0400)]
po: update cs.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agotests: add new test f_eofblocks
Theodore Ts'o [Wed, 11 Apr 2012 03:50:37 +0000 (23:50 -0400)]
tests: add new test f_eofblocks

Since we have changed the eofblocks handling in e2fsck (by removing
the need for the EOFBLOCKS_FL flag), we should have a test to check
out how we handle uninitialized and initialized blocks which are exist
beyond i_size, with files that have (and don't have) the EOFBLOCKS_FL.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoMerge branch 'master' of https://github.com/danielnorberg/e2fsprogs into maint
Theodore Ts'o [Tue, 10 Apr 2012 17:10:44 +0000 (13:10 -0400)]
Merge branch 'master' of https://github.com/danielnorberg/e2fsprogs into maint

(The single commit was missing a Signed-Off-By, but it was a trivial
change to a non-source file, so I've accepted it.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agocom_err.pc: correct include path
Daniel Norberg [Tue, 10 Apr 2012 13:24:53 +0000 (15:24 +0200)]
com_err.pc: correct include path

compile_et puts #include <et/com_err.h> in
generated header files so pkg-config --cflags
com_err should provide the path to the directory
containing et/.

12 years agodebian: update debian-policy conformance to 3.9.3
Theodore Ts'o [Mon, 9 Apr 2012 19:26:53 +0000 (15:26 -0400)]
debian: update debian-policy conformance to 3.9.3

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoUpdate for Debian 1.42.2-2 release
Theodore Ts'o [Mon, 9 Apr 2012 18:59:20 +0000 (14:59 -0400)]
Update for Debian 1.42.2-2 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoe2fsck.conf.5: add buggy_init_scripts to the man page
Theodore Ts'o [Mon, 9 Apr 2012 18:46:43 +0000 (14:46 -0400)]
e2fsck.conf.5: add buggy_init_scripts to the man page

We have renamed buggy_init_scripts to accept_time_fudge.  Explain this
so that people who find buggy_init_scripts in older e2fsck.conf files
understand what is going on.

Addresses-Debian-Bug: #646963

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: improve testing coverage of tst_bitmaps
Theodore Ts'o [Fri, 6 Apr 2012 18:51:09 +0000 (11:51 -0700)]
libext2fs: improve testing coverage of tst_bitmaps

Improve the test coverage of tst_bitmaps by:

   (a) adding the ability to test the legacy (32-bit) bitmap code
   (b) adding tests for ext2fs_find_first_zero_inode_bitmap2() and
       ext2fs_find_first_zero_block_bitmap2()

The recent regressions caused by the addition (and use) of
ext2fs_find_first_zero_inode_bitmap2() would have been caught if we
had added these tests first.  (Another object lesson in why unit tests
are critically important!)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: use correct types in ext2fs_find_first_zero_block_bitmap2()
Theodore Ts'o [Fri, 6 Apr 2012 18:49:22 +0000 (11:49 -0700)]
libext2fs: use correct types in ext2fs_find_first_zero_block_bitmap2()

Fortunately nothing was using this inline function, so we'll just fix
the types in its function signature, which were nonsensical (this was
caused by a cut-and-paste error).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: add 32-bit compat code for ext2fs_find_first_zero_generic_bmap()
Theodore Ts'o [Fri, 6 Apr 2012 18:44:54 +0000 (11:44 -0700)]
libext2fs: add 32-bit compat code for ext2fs_find_first_zero_generic_bmap()

The lack of 32-bit support was causing febootstrap to crash since it
wasn't passing EXT2_FLAG_64BITS when opening the file system, so we
were still using the legacy bitmaps.

Also add support for bigalloc bitmap into the ffz functions.

Addresses-Red-Hat-Bugzilla: #808421

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoUpdate config.guess and config.sub to the latest (2012-02-10) version
Theodore Ts'o [Thu, 5 Apr 2012 22:45:02 +0000 (15:45 -0700)]
Update config.guess and config.sub to the latest (2012-02-10) version

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoDon't assume that the presence of mntent.h means that setmntent() exists
Theodore Ts'o [Thu, 5 Apr 2012 22:31:09 +0000 (15:31 -0700)]
Don't assume that the presence of mntent.h means that setmntent() exists

Change autoconf to test for setmntent() and use that to decide whether
to use getmntent() and setmntent(), since some systems don't have
setmntent() but they do have the mntent.h header file.

Also, remove the includes of mntent.h from e2fsck and mke2fs and other
places where it is not needed.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agofsck: don't include sys/signal.h for portability reasons
Theodore Ts'o [Thu, 5 Apr 2012 22:21:49 +0000 (15:21 -0700)]
fsck: don't include sys/signal.h for portability reasons

It isn't necessary to include sys/signal.h, and it's not available on
all systems.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoe2fsck: add portability fallback in case getpwuid_r is not present
Theodore Ts'o [Thu, 5 Apr 2012 22:16:50 +0000 (15:16 -0700)]
e2fsck: add portability fallback in case getpwuid_r is not present

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agomke2fs: don't fail creating the journal if /etc/mtab is missing
Theodore Ts'o [Thu, 5 Apr 2012 19:30:02 +0000 (12:30 -0700)]
mke2fs: don't fail creating the journal if /etc/mtab is missing

The ext2fs_add_journal_inode() function calls
ext2fs_check_mount_point(), which can fail if /etc/mtab is missing.
This causes mke2fs to fail in the middle of the file system format
process; mke2fs calls ext2fs_check_mount_point() already (and has
appropriate fallbacks that calls fails), so add a flag so that mke2fs
can request ext2fs_add_journal_inode() to skip trying to call
e2fsck_check_mount_point().

Addresses-Sourceforge-Bug: #3509398

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoFix gcc -Wall nitpicks
Theodore Ts'o [Thu, 5 Apr 2012 19:13:05 +0000 (12:13 -0700)]
Fix gcc -Wall nitpicks

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agoUpdate Release Notes, Changelogs, version.h, etc. for 1.42.2 release v1.42.2
Theodore Ts'o [Tue, 27 Mar 2012 22:58:00 +0000 (15:58 -0700)]
Update Release Notes, Changelogs, version.h, etc. for 1.42.2 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agopo: update vi.po (from translationproject.org)
Trần Ngọc Quân [Tue, 27 Mar 2012 19:02:27 +0000 (12:02 -0700)]
po: update vi.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 years agodebian: add pointer for e2fsprogs-udeb to libcomerr2.shlibs
Theodore Ts'o [Tue, 27 Mar 2012 18:48:18 +0000 (11:48 -0700)]
debian: add pointer for e2fsprogs-udeb to libcomerr2.shlibs

The udeb for btrfs-tools need libcom_err.so.2, which is packaged as a
part of e2fsprogs-udeb since we don't have a separate libcomerr2 udeb.
So we need to make sure the shlibs file has an explicit pointer to
handle this case.

Addresses-Debian-Bug: #665885

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agodebian: add back support older systems w/o dpkg-buildflags
Theodore Ts'o [Tue, 27 Mar 2012 05:23:24 +0000 (22:23 -0700)]
debian: add back support older systems w/o dpkg-buildflags

Commit 5d0e1f99 removed support for older systems such as Ubuntu
10.04, which don't have dpkg-buildflags.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agodebian: don't build BUILD-STATIC if SKIP_STATIC=yes
Theodore Ts'o [Tue, 27 Mar 2012 04:44:11 +0000 (21:44 -0700)]
debian: don't build BUILD-STATIC if SKIP_STATIC=yes

Trade off build time for space by using e2fsck.static from BUILD-STD
and not building BUILD-STATIC if SKIP_STATIC=yes in the rules.custom
file.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agodebian: don't build BUILD-BF if SKIP_BF=yes
Theodore Ts'o [Tue, 27 Mar 2012 04:41:47 +0000 (21:41 -0700)]
debian: don't build BUILD-BF if SKIP_BF=yes

Trade off build time for space by using the binaries from BUILD-STD
and not building BUILD-BF if SKIP_BF=yes in the rules.custom file.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agodebian: compile without using dietlibc if SKIP_DIETLIBC=yes
Theodore Ts'o [Mon, 26 Mar 2012 23:31:06 +0000 (16:31 -0700)]
debian: compile without using dietlibc if SKIP_DIETLIBC=yes

Some distributions such as Ubuntu don't have dietlibc.  If
SKIP_DIETLIBC=yes appears in rules.custom, this will change the
control file and cause the build rules to skip using dietlibc when
building the BUILD-BF version of e2fsprogs.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agodebian: try to include rules.custom if it exists
Theodore Ts'o [Tue, 27 Mar 2012 00:37:10 +0000 (17:37 -0700)]
debian: try to include rules.custom if it exists

The rules.custom file will never exist upstream, but by trying to
include it if it exists, it will make it easier to people create
custom builds of e2fsprogs by overriding various configuration
parameters in the debian rules file, while minimizing the chance of
future merge conflicts.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agomke2fs.conf: allow use of a custom mke2fs.conf file
Theodore Ts'o [Tue, 27 Mar 2012 00:57:58 +0000 (17:57 -0700)]
mke2fs.conf: allow use of a custom mke2fs.conf file

Rename mke2fs.conf to mke2fs.conf.in, so that the makefile can choose
to use either mke2fs.conf.in or mke2fs.conf.custom.in (if it is
present).  If there is custom configuration file, it's likely that it
is very different from the upstream mke2fs.conf.in, so by having the
separate mke2fs.conf.custom.in file, it minimizes merge conflicts if
the upstream mke2fs.conf file changes.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
12 years agolibext2fs: fix ext2fs_get_memalign when posix_memalign() doesn't exist
Theodore Ts'o [Mon, 26 Mar 2012 22:37:28 +0000 (15:37 -0700)]
libext2fs: fix ext2fs_get_memalign when posix_memalign() doesn't exist

Reported by: Gianluigi Tiesi <sherpya@netfarm.it>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>