Whamcloud - gitweb
tools/e2fsprogs.git
7 years agoe2fsck: 3 level hash tree directory optimization
Artem Blagodarenko [Wed, 15 Feb 2017 17:45:00 +0000 (20:45 +0300)]
e2fsck: 3 level hash tree directory optimization

e2fsck fix for partitions with 3 level hash directries.
Additional level is added to e2fsck -D codepath.

Signed-off-by: Artem Blagodarenko <artem.blagodarenko@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsprogs: add support for 3-level htree
Artem Blagodarenko [Wed, 15 Feb 2017 17:43:15 +0000 (20:43 +0300)]
e2fsprogs: add support for 3-level htree

The INCOMPAT_LARGEDIR feature allows larger directories to
be created, both with directory sizes over 2GB and and a
maximum htree depth of 3 instead of the current limit of 2.
These features are needed in order to exceed the currently
limit of approximately 10M entries in a single directory
for 4KB blocksize (~100k for 1KB).

debugfs, e2fsck, ext2fs, mke2fs and tune2fs support is
added.

Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Signed-off-by: Artem Blagodarenko <artem.blagodarenko@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsprogs: supersede i_dir_acl with i_size_high for all cases
Artem Blagodarenko [Mon, 13 Feb 2017 09:20:14 +0000 (12:20 +0300)]
e2fsprogs: supersede i_dir_acl with i_size_high for all cases

This patch removes i_dir_acl macros and macros users.
Now stucture field can be accessed as i_size_high. This field
is useful for largedir feature.

Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Signed-off-by: Artem Blagodarenko <artem.blagodarenko@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe4crypt: fix error handling for KEYCTL_GET_KEYRING_ID
Joe Richey [Mon, 3 Apr 2017 16:52:50 +0000 (16:52 +0000)]
e4crypt: fix error handling for KEYCTL_GET_KEYRING_ID

Due to some interesting behaviour in keyctl (as described in the
comments), we use KEYCTL_GET_KEYRING_ID to translate the special value
of KEY_SPEC_SESSION_KEYRING to a real keyring id. However, how we
currently do this is flawed in two ways.

First, if KEYCTL_GET_KEYRING_ID fails, we don't detect it as it returns
-1 and zero is used for an error value in get_keyring_id. Second, if the
user specifies "-k @s" the translation never runs and the undesireable
behavior occurs.

These are both fixed by doing the translation outside of get_keyring_id.

Signed-off-by: Joe Richey <joerichey@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: fix quota accounting to use cluster units
Eric Whitney [Sun, 2 Apr 2017 16:57:05 +0000 (12:57 -0400)]
e2fsck: fix quota accounting to use cluster units

The quota accounting code in e2fsck's pass 1 and pass 3 uses block units
rather than cluster units when recording the allocated space consumed by
files and directories.  In pass 1, this causes a large undercount of
actual quota results and test failures for xfstests generic/383, /384,
/385, and /386 on bigalloc file systems.  In pass 3, this results in
quota accounting errors when the lost+found directory is either extended
or recreated on a bigalloc file system.

Use clusters rather than blocks when accounting for allocated space,
and correct a related header comment in the quota code.

Note that pass 1b also contains call sites for quota_data_sub() that
also need to be addressed.  However, it appears that more than just
unit conversion may be needed, so that will be left to a future patch.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: apply LDFLAGS when building tst_inline_data
Eric Biggers [Fri, 17 Mar 2017 22:38:36 +0000 (15:38 -0700)]
libext2fs: apply LDFLAGS when building tst_inline_data

If libext2fs was compiled with an external libblkid pointed to by
LDFLAGS, then linking the tst_inline_data program failed because the
requested linker flags were not used.  Fix this by adding $(ALL_LDFLAGS)
to the build rule, as is done for the other test programs.

Fixes: 31253488385a ("libext2fs: add a unit test for inline data")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: fix type mismatches in quota warning message
Eric Whitney [Fri, 31 Mar 2017 23:21:59 +0000 (19:21 -0400)]
e2fsck: fix type mismatches in quota warning message

The conversion operations in the format control strings found in the
fprintf call used to print the quota warning message do not match the
types of their corresponding arguments.  Although this probably hasn't
generally been a problem, it obfuscates a bigalloc quota accounting bug
where the reported actual quota goes negative.

Clean up the mismatches and some unnecessary casts.  While we're at it,
fix a spelling nit in a related comment.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoFix metadata_csum typo in ext4 man page
Justin Bronder [Fri, 31 Mar 2017 14:24:39 +0000 (10:24 -0400)]
Fix metadata_csum typo in ext4 man page

Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
7 years agomisc: fix all the compiler warnings
Darrick J. Wong [Thu, 2 Mar 2017 04:52:12 +0000 (20:52 -0800)]
misc: fix all the compiler warnings

Fix the various compiler warnings that have crept in, and only define
__bitwise if the system headers haven't already done so.  Linux 4.10
changes the __bitwise definition so that our redefinition here is
just different enough that gcc complains.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agotests: fix test failure in f_detect_xfs caused by commit bf615bb0ccad
Theodore Ts'o [Fri, 3 Mar 2017 15:00:17 +0000 (10:00 -0500)]
tests: fix test failure in f_detect_xfs caused by commit bf615bb0ccad

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: readahead for meta_bg
Alexey Lyashkov [Wed, 1 Mar 2017 20:03:54 +0000 (15:03 -0500)]
libext2fs: readahead for meta_bg

There are ~37k of random IOs with meta_bg option on 300T target.
Debugfs requires 20 minutes to be started. Enabling readahead for
group blocks metadata save time dramatically. Only 12s to start.

Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
7 years agoe2fsck: report the exit value in the logfile
Theodore Ts'o [Wed, 1 Mar 2017 19:33:45 +0000 (14:33 -0500)]
e2fsck: report the exit value in the logfile

If e2fsck logging is enabled, report the exit value as the last line
in the log file.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update uk.po (from translationproject.org)
Yuri Chornoivan [Mon, 20 Feb 2017 02:45:43 +0000 (21:45 -0500)]
po: update uk.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update sv.po (from translationproject.org)
Göran Uddeborg [Mon, 20 Feb 2017 02:45:43 +0000 (21:45 -0500)]
po: update sv.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update pl.po (from translationproject.org)
Jakub Bogusz [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update pl.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update nl.po (from translationproject.org)
Benno Schulenberg [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update nl.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update fr.po (from translationproject.org)
Samuel Thibault [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update fr.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update es.po (from translationproject.org)
Antonio Ceballos [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update es.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update da.po (from translationproject.org)
Joe Hansen [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update da.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update cs.po (from translationproject.org)
Petr Pisar [Mon, 20 Feb 2017 02:45:42 +0000 (21:45 -0500)]
po: update cs.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebugfs: better support of superblocks with bad checksums
Theodore Ts'o [Mon, 20 Feb 2017 02:08:21 +0000 (21:08 -0500)]
debugfs: better support of superblocks with bad checksums

Allow debugfs to open file systems with a bad checksum, and teach the
show_super_stats command to print the expected checksum value.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoDo interim update of RELEASE NOTES
Theodore Ts'o [Fri, 17 Feb 2017 20:18:10 +0000 (15:18 -0500)]
Do interim update of RELEASE NOTES

7 years agoe2fsck: make problem comments match error messages
Andreas Dilger [Fri, 17 Feb 2017 17:57:29 +0000 (12:57 -0500)]
e2fsck: make problem comments match error messages

Since the @x compression obscures e2fsck problem error messages
from being found by normal searching, make the comment for each
error match the actual error message so that they can be found
more easily.

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: don't check inode flag values for deleted inodes
Theodore Ts'o [Fri, 17 Feb 2017 15:42:17 +0000 (10:42 -0500)]
e2fsck: don't check inode flag values for deleted inodes

Commit 47b8941774df "e2fsck: make sure system.data xattr is present"
exposed a bug in e2fsck's pass 1 handling which caused the xfstests's
generic/079 to fail if the inline_data feature was enabled.  The
problem was that e2fsck was checking if an inode with inline data had
the system.xattr EA before checking to see if that inode was still in
use --- and this invariant isn't necessarily true for deleted inodes.
There were a number of other checks that were done too early that
could also potentially cause false positive complaints, although those
would normally only happen if a now-unused portion of the inode table
had gotten corrupted, or if tune2fs had disabled a particular file
system feature and there old, deleted inodes that had values
inconsistent with the new file system configuration.

Reported-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: exit with exit status 0 if no errors were fixed
Theodore Ts'o [Fri, 17 Feb 2017 03:02:35 +0000 (22:02 -0500)]
e2fsck: exit with exit status 0 if no errors were fixed

Previously, e2fsck would exit with a status code of 1 even though the
only changes that it made to the file system were various
optimziations and not fixing file system corruption.  Since the man
page states that an exit status of 1 means "file system errors
corrupted", fix e2fsck to return an exit status of 0.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoRefactor code to print journal superblock information
Theodore Ts'o [Thu, 16 Feb 2017 23:54:41 +0000 (18:54 -0500)]
Refactor code to print journal superblock information

Move the code to list the journal superblock information to libe2p, so
it can be used by debugfs, and so we don't have two copies of
substantially the same code in dumpe2fs.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: remove unused jfs_dat.h file
Theodore Ts'o [Thu, 16 Feb 2017 20:11:23 +0000 (15:11 -0500)]
libext2fs: remove unused jfs_dat.h file

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebugfs: with ls -l, include space between size and date
Eric Biggers [Mon, 13 Feb 2017 00:01:40 +0000 (16:01 -0800)]
debugfs: with ls -l, include space between size and date

Before:
     11   40700 (2)      0      0   1228812-Feb-2017 12:51 lost+found

After:
     11   40700 (2)      0      0   12288 12-Feb-2017 12:51 lost+found

Fixes: 68a1de3df340 ("debugfs: pretty print encrypted filenames in the ls command")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
7 years agodebugfs.8: fix name of argument to blocks command
Eric Biggers [Mon, 13 Feb 2017 00:00:09 +0000 (16:00 -0800)]
debugfs.8: fix name of argument to blocks command

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibsupport: remove debugging printf() from parse_qtype.c
Theodore Ts'o [Thu, 16 Feb 2017 16:19:51 +0000 (11:19 -0500)]
libsupport: remove debugging printf() from parse_qtype.c

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agotests: don't use "debugfs -f /dev/stdin"
Theodore Ts'o [Thu, 16 Feb 2017 16:15:34 +0000 (11:15 -0500)]
tests: don't use "debugfs -f /dev/stdin"

Don't use "debugfs -f /dev/stdin" for portability reasons --- not all
systems have /dev/stdin.  Simply dropping "-f /dev/stdin" works just
fine.

Reported-by: Rical Jasan <ricaljasan@pacific.net>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agomke2fs: remove the -f option from the man page
John Haxby [Wed, 8 Feb 2017 15:26:38 +0000 (15:26 +0000)]
mke2fs: remove the -f option from the man page

The -f option was removed in c6ed60cdeb13 (mke2fs: support creating
bigalloc file systems), let's remove it from the man page as well.
And as it was the only noted bug, take the BUGS section with it.

Signed-off-by: John Haxby <john.haxby@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebian: update changelog for tune2fs regression fix
Theodore Ts'o [Mon, 6 Feb 2017 01:59:37 +0000 (20:59 -0500)]
debian: update changelog for tune2fs regression fix

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agotune2fs: fix quota enablement regression
Eric Whitney [Sat, 4 Feb 2017 03:23:34 +0000 (22:23 -0500)]
tune2fs: fix quota enablement regression

Commit 5c2a665afa (Avoid dereferencing beyond allocated memory in quota
handling) induced a quota enablement regression in tune2fs.  Attempts
to enable a particular quota type (tune2fs -O project <dev>, for
example) set the appropriate feature flag in the superblock but the
quota file for the type is not initialized.

The regression prevents the current version of xfstests from running
generic/383, 384, 385, and 386 (all project quota tests) with e2fsprogs
1.43.4.  These tests exit with the message "Installed kernel does not
support project quotas", but the actual problem is that the project
quota file is not present.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoUpdate debian changelog for 1.43.4-2
Theodore Ts'o [Wed, 1 Feb 2017 00:57:28 +0000 (19:57 -0500)]
Update debian changelog for 1.43.4-2

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoUpdate release notes, etc., for the 1.43.4 release v1.43.4
Theodore Ts'o [Tue, 31 Jan 2017 23:24:50 +0000 (18:24 -0500)]
Update release notes, etc., for the 1.43.4 release

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoAdd the Malay translation from the Translation Project
Theodore Ts'o [Tue, 31 Jan 2017 22:49:35 +0000 (17:49 -0500)]
Add the Malay translation from the Translation Project

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoAdd Finnish translation from the Translation Project
Theodore Ts'o [Tue, 31 Jan 2017 22:47:06 +0000 (17:47 -0500)]
Add Finnish translation from the Translation Project

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update zh_CN.po (from translationproject.org)
Mingye Wang (Arthur2e5) [Tue, 31 Jan 2017 22:34:56 +0000 (17:34 -0500)]
po: update zh_CN.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update sr.po (from translationproject.org)
Мирослав Николић [Tue, 31 Jan 2017 22:34:56 +0000 (17:34 -0500)]
po: update sr.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update es.po (from translationproject.org)
Antonio Ceballos [Tue, 31 Jan 2017 22:34:55 +0000 (17:34 -0500)]
po: update es.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update de.po (from translationproject.org)
Philipp Thomas [Tue, 31 Jan 2017 22:34:55 +0000 (17:34 -0500)]
po: update de.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update cs.po (from translationproject.org)
Petr Pisar [Tue, 31 Jan 2017 22:34:55 +0000 (17:34 -0500)]
po: update cs.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoStop installing mkfs.ext4dev and fsck.ext4dev
Theodore Ts'o [Tue, 31 Jan 2017 22:08:34 +0000 (17:08 -0500)]
Stop installing mkfs.ext4dev and fsck.ext4dev

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2label.8, tune2fs.8: use volume label terminology consistently
Theodore Ts'o [Tue, 31 Jan 2017 21:22:06 +0000 (16:22 -0500)]
e2label.8, tune2fs.8: use volume label terminology consistently

Addresses-Debian-Bug: #852726

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agotune2fs, mke2fs: use "Proceed (y, N)" so the default is clear
Theodore Ts'o [Tue, 31 Jan 2017 21:17:15 +0000 (16:17 -0500)]
tune2fs, mke2fs: use "Proceed (y, N)" so the default is clear

Addresses-Debian-Bug: #852727

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agofuse2fs: fix Coverity warnings
Theodore Ts'o [Tue, 31 Jan 2017 21:16:40 +0000 (16:16 -0500)]
fuse2fs: fix Coverity warnings

(including some potential memory leaks on error paths)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebugfs: in ea_get -V, don't print double quotes around the C strings
Theodore Ts'o [Tue, 31 Jan 2017 20:31:13 +0000 (15:31 -0500)]
debugfs: in ea_get -V, don't print double quotes around the C strings

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibsupport: improve how invalid hex strings are parsed as C strings
Theodore Ts'o [Tue, 31 Jan 2017 20:30:28 +0000 (15:30 -0500)]
libsupport: improve how invalid hex strings are parsed as C strings

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: fix memory leaks in ext2fs_xattr_set()
Theodore Ts'o [Tue, 31 Jan 2017 20:29:57 +0000 (15:29 -0500)]
libext2fs: fix memory leaks in ext2fs_xattr_set()

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: make sure system.data xattr is present
Theodore Ts'o [Tue, 31 Jan 2017 19:05:45 +0000 (14:05 -0500)]
e2fsck: make sure system.data xattr is present

E2fsprogs used to assume that if i_size is less than 60 bytes, the
system.data xattr isn't needed (and should be removed).  The kernel
disagree, and will declare the file system to be corrupted.  Enforce
the tighter constraints assumed by the kernel.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoUpdate release notes, etc. for 1.43.4-WIP release
Theodore Ts'o [Tue, 31 Jan 2017 06:03:13 +0000 (01:03 -0500)]
Update release notes, etc. for 1.43.4-WIP release

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoAdd utility script which generates a small sample file system
Theodore Ts'o [Tue, 31 Jan 2017 06:02:03 +0000 (01:02 -0500)]
Add utility script which generates a small sample file system

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoDuring filesystem creation with -d option files copied from given
Artem Blagodarenko [Tue, 31 Jan 2017 02:51:14 +0000 (21:51 -0500)]
During filesystem creation with -d option files copied from given
directory. If supported, FS_IOC_FIEMAP ioctl is used to get file
extents. For empty file fm_mapped_extents is 0 and no error code
is returned, because this is not fail situation.

Without this patch errno from previous operation is returned and
successful FS_IOC_FIEMAP ioctl call for empty file is interpreted
as error.

Signed-off-by: Artem Blagodarenko <artem.blagodarenko@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
7 years agoe2fsprogs: enable project quota reporting in debugfs
Eric Whitney [Mon, 30 Jan 2017 17:34:16 +0000 (12:34 -0500)]
e2fsprogs: enable project quota reporting in debugfs

Make the minor changes required so the list_quota and get_quota commands
can report project quota information.  This also fixes a debugfs
segfault that currently occurs when either list_quota or get_quota is
invoked with an unknown quota_type argument.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: translate internal ext4 acl to Posix ACL in ext2fs_xattr_[sg]et()
Theodore Ts'o [Sun, 29 Jan 2017 03:34:16 +0000 (22:34 -0500)]
libext2fs: translate internal ext4 acl to Posix ACL in ext2fs_xattr_[sg]et()

ext2fs_xattr_[sg]et() will now translate the Posix ACL xattrs to and
from the internal ext4 attr format, since the callers of the libext2fs
are much more likely to want to use the public Posix ACL format.

For debugfs and those applications that want to see the on-disk
format, the new ext4fs_xattr_flags() function will allow those callers
to request the raw format.

Addresses-Launchpad-Bug: #1645232

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebugfs: improve how we display and parse extended attribute values
Theodore Ts'o [Sat, 28 Jan 2017 18:09:53 +0000 (13:09 -0500)]
debugfs: improve how we display and parse extended attribute values

Use the new C string printing routine, and allow ea_get command to
display the system.data extended attribute.  Also allow the user to
explicitly request that the string be printed using hex values.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibsupport: add C string printing and parsing functions
Theodore Ts'o [Sat, 28 Jan 2017 17:11:46 +0000 (12:11 -0500)]
libsupport: add C string printing and parsing functions

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agotest: add f_mke2fs_baddisk
Dmitry Monakhov [Wed, 7 Dec 2016 14:55:17 +0000 (18:55 +0400)]
test: add f_mke2fs_baddisk

Check what mke2fs will return non zero error on broken device.

This test requires using dmsetup, so it requires running as root; if
root privileges is not available, the test will be skipped.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: don't ignore fsync errors
Eric Sandeen [Tue, 20 Dec 2016 15:23:29 +0000 (09:23 -0600)]
libext2fs: don't ignore fsync errors

Today, if mke2fs experiences IO errors (say, on a thin device
which filled up during mkfs), mke2fs is silent and returns
success even though the filesystem was not properly created.

Catch errors from the io_channel_flush() callchain to
fix this up.  Fix formatting of the printed error as
well:

...
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:
Warning, had trouble writing out superblocks.
# echo $?
5

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolib/et/testcases: checked in imap_err.et from cyrus-imapd version 2.5.10
Theodore Ts'o [Fri, 23 Dec 2016 03:23:58 +0000 (22:23 -0500)]
lib/et/testcases: checked in imap_err.et from cyrus-imapd version 2.5.10

This version of imap_err.et has a 4-clause BSD license, which should
hopefully be more comforting to lawyers than the license with
prohibits non-commercial use --- which shouldn't be a problem since
it's in a test case that would never show up in any binary, and so
license compatibility wouldn't be an issue.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoBring back libext2_profile build rules.
Jeff Sharkey [Fri, 21 Oct 2016 18:44:14 +0000 (12:44 -0600)]
Bring back libext2_profile build rules.

Google-Bug-Id: 27599744
From AOSP commit: 80fcd5bb6dcc130337def60423a5d9e22a5814e7

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebugfs, e2fsck, mke2fs: fix miscellaneous memory leaks detected by ASAN
Theodore Ts'o [Sat, 12 Nov 2016 14:31:56 +0000 (09:31 -0500)]
debugfs, e2fsck, mke2fs: fix miscellaneous memory leaks detected by ASAN

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoMake sure test progams free all allocated memory
Theodore Ts'o [Sat, 12 Nov 2016 04:15:56 +0000 (23:15 -0500)]
Make sure test progams free all allocated memory

This eliminates complaints from ASAN's memory leak detector.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoAvoid dereferencing beyond allocated memory in quota handling
Theodore Ts'o [Fri, 11 Nov 2016 23:39:26 +0000 (18:39 -0500)]
Avoid dereferencing beyond allocated memory in quota handling

The quota support code must must not try to handle the project quota
if the the project feature is not enabled.

Problem detected by ASAN.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: avoid dereferencing beyond allocated memory in xattr code
Theodore Ts'o [Fri, 11 Nov 2016 23:38:20 +0000 (18:38 -0500)]
libext2fs: avoid dereferencing beyond allocated memory in xattr code

Detected by ASAN.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: avoid dereferencing beyond allocated memory with 128 byte inodes
Theodore Ts'o [Fri, 11 Nov 2016 23:34:35 +0000 (18:34 -0500)]
e2fsck: avoid dereferencing beyond allocated memory with 128 byte inodes

Detected by ASAN when the inode size is 128 bytes.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agomke2fs: Avoid crashes / infinite loops for absurdly large devices
Jan Kara [Tue, 25 Oct 2016 18:08:59 +0000 (14:08 -0400)]
mke2fs: Avoid crashes / infinite loops for absurdly large devices

When a device reports absurdly high size, some arithmetics in mke2fs can
overflow (e.g. number of block descriptors) and we end in an infinite
loop. Fix that by checking and refusing insanely large devices.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopartinfo: fix some build errors
Darrick J. Wong [Tue, 25 Oct 2016 17:28:13 +0000 (13:28 -0400)]
partinfo: fix some build errors

Fix some missing header files and library link targets.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibsupport: fix compilation on RHEL 5.x due to missing magic define
Thomas De Schampheleire [Tue, 25 Oct 2016 17:22:39 +0000 (13:22 -0400)]
libsupport: fix compilation on RHEL 5.x due to missing magic define

RHEL 5.x does have magic.h, but it does not define all expected symbols. In
particular, the NO_CHECK symbols were only added in file 4.20 and RHEL 5.x
is using 4.17.

Add substitute defines to allow continued usage of magic but without the
requested exclude checks.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoresize2fs: fix resizing large file systems when block size != page size
Theodore Ts'o [Tue, 25 Oct 2016 17:18:14 +0000 (13:18 -0400)]
resize2fs: fix resizing large file systems when block size != page size

Reported by: Jerry Lee <jerrylee@qnap.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoandroid: fix Mac build
Theodore Ts'o [Mon, 24 Oct 2016 19:18:09 +0000 (15:18 -0400)]
android: fix Mac build

Disable building debugfs and e4crypt on mac.
Add missing time.h include in ext2fs.h for time_t.

From AOSP commit: f2b2d2c0a6af8bd1e1a19150cf9d41d8f2b0e39a

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agomke2fs.conf: add back missing uninit_bg feature flag
Theodore Ts'o [Mon, 24 Oct 2016 18:15:43 +0000 (14:15 -0400)]
mke2fs.conf: add back missing uninit_bg feature flag

Commit 0da058af9f88: "mke2fs.conf: don't enable metadata_csum by
default" removed metadata_csum without adding back the uninit_bg flag
--- which had the net result of causing file systems to take a long
time to mke2fs, since this caused all of the block group metadata to
be initialized.

Addresses-Google-Bug: 32342524

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: unix_io: reflect error from read/write calls to caller
Theodore Ts'o [Fri, 21 Oct 2016 14:21:54 +0000 (10:21 -0400)]
libext2fs: unix_io: reflect error from read/write calls to caller

If the read(2) or write(2) system calls fail, return the error to the
caller instead of returning "short read" or "short write", which is
just misleading.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: force DIO alignment FreeBSD when operating on a block device
Theodore Ts'o [Tue, 13 Sep 2016 22:39:22 +0000 (18:39 -0400)]
libext2fs: force DIO alignment FreeBSD when operating on a block device

FreeBSD (and possibly BSD systems) requires that reads and writes to
block devices must be aligned, even when the O_DIRECT flag is not
specified.  Previously this was hard-coded to 512 bytes, but in order
to properly handle Advanced Format HDD's, query the BSD kernel to
determine the proper alignment to use.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: add FreeBSD support to getsectsize.c
Theodore Ts'o [Tue, 13 Sep 2016 22:31:20 +0000 (18:31 -0400)]
libext2fs: add FreeBSD support to getsectsize.c

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: fix short-read bugs in unix_io's bounce buffer handling
Matthias Andree [Tue, 13 Sep 2016 20:34:33 +0000 (16:34 -0400)]
libext2fs: fix short-read bugs in unix_io's bounce buffer handling

Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: add test facility UNIX_IO_FORCE_BOUNCE in unix_io.c
Theodore Ts'o [Tue, 13 Sep 2016 18:34:59 +0000 (14:34 -0400)]
libext2fs: add test facility UNIX_IO_FORCE_BOUNCE in unix_io.c

If the UNIX_IO_FORCE_BOUNCE environment is set, all I/O will be sent
through the bounce buffer code paths for debugging / testing purposes.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoFix spurious error when both gmake and makeinfo are not available
Theodore Ts'o [Mon, 12 Sep 2016 03:30:25 +0000 (23:30 -0400)]
Fix spurious error when both gmake and makeinfo are not available

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoFix reversed FORCE_NATIVE_MAKE test in acinclude.m4
Theodore Ts'o [Mon, 12 Sep 2016 03:11:31 +0000 (23:11 -0400)]
Fix reversed FORCE_NATIVE_MAKE test in acinclude.m4

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: fix unaligned, multiblock writes in the unix_io handler
Theodore Ts'o [Sun, 11 Sep 2016 04:25:48 +0000 (00:25 -0400)]
libext2fs: fix unaligned, multiblock writes in the unix_io handler

The read-modify-write code for the unaligned fallback code wasn't
working for multi-block writes.  This was unmasked by FreeBSD 11-rc2,
since its malloc() is returning unaligned memory regions for large
memory regions.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoUpdate release notes, etc., for 1.43.3 release v1.43.3
Theodore Ts'o [Mon, 5 Sep 2016 01:31:21 +0000 (21:31 -0400)]
Update release notes, etc., for 1.43.3 release

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: enforce that the extra isize fields in the superblock are sane
Theodore Ts'o [Sun, 4 Sep 2016 21:31:07 +0000 (17:31 -0400)]
e2fsck: enforce that the extra isize fields in the superblock are sane

Invalid extra isize fields can cause crashes in e2fsprogs and possibly
in the kernel for some architectures due to unaligned accesses.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: enforce that extra_isize must be a multiple of four
Theodore Ts'o [Sun, 4 Sep 2016 20:29:12 +0000 (16:29 -0400)]
e2fsck: enforce that extra_isize must be a multiple of four

We need to prevent unaligned accesses, so treat any extra_isize which
is not a multiple of four as an bug.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoAvoid crashing on unaligned pointers from corrupted file systems
Theodore Ts'o [Sun, 4 Sep 2016 19:06:32 +0000 (15:06 -0400)]
Avoid crashing on unaligned pointers from corrupted file systems

On platforms that don't permit unaligned pointer dereferences,
corrupted file systems will as used by the regression test suite can
cause e2fsck and debugfs to crash.  Avoid those crashes caused by
corrupted file systems.  With this commit the full set of regression
test suites will pass on the sparc64 platform.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoFix FreeBSD pmake support
Theodore Ts'o [Sun, 4 Sep 2016 04:16:35 +0000 (00:16 -0400)]
Fix FreeBSD pmake support

Fix a typo in the @ifNotGNUmake@ case of MCONFIG.in.

Also allow the FORCE_NATIVE_MAKE to force the use of the non-GNU make
optimized Makefile.  The resulting makefile will work with GNU Make
4.2.1, although "make V=1" won't be honored.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: fix timestamps logic for 32-bit systems
Theodore Ts'o [Sun, 4 Sep 2016 03:33:11 +0000 (23:33 -0400)]
e2fsck: fix timestamps logic for 32-bit systems

Commit 35a4e1b1c5cbb introduced a regression which caused e2fsck on
32-bit systems to think all timestamps were legacy pre-1970
timestamps.  Fix the bug.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebian: update changelog
Theodore Ts'o [Fri, 2 Sep 2016 04:49:31 +0000 (00:49 -0400)]
debian: update changelog

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebian: don't hide the linker flags for e2fsck.static
Theodore Ts'o [Fri, 2 Sep 2016 03:48:03 +0000 (23:48 -0400)]
debian: don't hide the linker flags for e2fsck.static

The linker command needs to be visible so the blhc scanner can work
correctly.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agodebian: fix build reproducibility problems in the rules file
Theodore Ts'o [Fri, 2 Sep 2016 03:13:04 +0000 (23:13 -0400)]
debian: fix build reproducibility problems in the rules file

The configure file needs to be run using a relative pathname so that
when $(srcdir) gets introduced into binary file, the location of the
build directory doesn't find its way into the binaries.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoFix build reproducibility for mk_cmds and compile_et
Theodore Ts'o [Fri, 2 Sep 2016 02:25:22 +0000 (22:25 -0400)]
Fix build reproducibility for mk_cmds and compile_et

The mk_cmds and compile_et scripts include the build directory, which
breaks the build reproducibility goal of Debian.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoUpdate release notes, etc. for 1.43.2 release v1.43.2
Theodore Ts'o [Thu, 1 Sep 2016 19:33:11 +0000 (15:33 -0400)]
Update release notes, etc. for 1.43.2 release

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoconfig: update config.{guess,sub}
Theodore Ts'o [Thu, 1 Sep 2016 19:34:37 +0000 (15:34 -0400)]
config: update config.{guess,sub}

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agolibext2fs: allow the default journal size to go as large as a gigabyte
Theodore Ts'o [Thu, 1 Sep 2016 15:37:59 +0000 (11:37 -0400)]
libext2fs: allow the default journal size to go as large as a gigabyte

Recent research has shown that for a metadata-heavy workload, a 128 MB
is journal be a bottleneck on HDD's, and that the optimal journal size
is proportional to number of unique metadata blocks that can be
modified (and written into the journal) in a 30 second window.  One
gigabyte should be sufficient for most workloads, which will be used
for file systems larger than 128 gigabytes.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agoe2fsck: fix logic for deciding when to repair legacy timestamp encodings
Theodore Ts'o [Thu, 1 Sep 2016 04:13:38 +0000 (00:13 -0400)]
e2fsck: fix logic for deciding when to repair legacy timestamp encodings

A static code checker noticed that we had a redundant condition:

    if (((sizeof(time_t) <= 4) ||
         ((sizeof(time_t) > 4) &&

which was caused by the parenthesis were in the wrong place.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: Add Hugarian and Serbian translations
Theodore Ts'o [Thu, 1 Sep 2016 03:33:42 +0000 (23:33 -0400)]
po: Add Hugarian and Serbian translations

Also update the .gmo files.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update zh_CN.po (from translationproject.org)
Tianze Wang [Thu, 1 Sep 2016 03:14:17 +0000 (23:14 -0400)]
po: update zh_CN.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update uk.po (from translationproject.org)
Yuri Chornoivan [Thu, 1 Sep 2016 03:14:17 +0000 (23:14 -0400)]
po: update uk.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update sv.po (from translationproject.org)
Göran Uddeborg [Thu, 1 Sep 2016 03:14:17 +0000 (23:14 -0400)]
po: update sv.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 years agopo: update pl.po (from translationproject.org)
Jakub Bogusz [Thu, 1 Sep 2016 03:14:17 +0000 (23:14 -0400)]
po: update pl.po (from translationproject.org)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>