Whamcloud - gitweb
Theodore Ts'o [Sun, 8 Jul 2018 15:52:53 +0000 (11:52 -0400)]
libext2fs: install hashmap.h since it is needed by libext2fs.h
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Wed, 4 Jul 2018 13:46:45 +0000 (09:46 -0400)]
Update release notes, etc., for the 1.44.3-rc2 release
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Yuri Chornoivan [Wed, 4 Jul 2018 13:11:41 +0000 (09:11 -0400)]
po: update uk.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Göran Uddeborg [Wed, 4 Jul 2018 13:11:41 +0000 (09:11 -0400)]
po: update sv.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jakub Bogusz [Wed, 4 Jul 2018 13:11:41 +0000 (09:11 -0400)]
po: update pl.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Samuel Thibault [Wed, 4 Jul 2018 13:11:40 +0000 (09:11 -0400)]
po: update fr.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Petr Pisar [Wed, 4 Jul 2018 13:11:40 +0000 (09:11 -0400)]
po: update cs.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Wed, 4 Jul 2018 04:23:10 +0000 (00:23 -0400)]
libext2fs: call fsync(2) to clear stale errors for a new a unix I/O channel
Newer versions of Linux will retain errors and allow them to be
returned by fsync() or close(), even if the error happened before the
file descriptor was opened. This was to accomodate Postgres's
"interesting" method of error collection.
Unfortunately, for e2fsck, we never want to see stale errors, as this
can cause xfstests (such generic/347) to fail with a false positive.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Wed, 4 Jul 2018 04:18:30 +0000 (00:18 -0400)]
e2fsck: fix kernel compat functions to use kernel error return conventions
Fix journal_bmap() and sync_blockdev() to use the kernel error
convetions (e.g., -EIO instead of EIO) since they are called by
reovery.c, which is shared userspace / kernel code.
Without this, e2fsck might print an error message like this:
/sbin/e2fsck: Unknown code ____ 251 while recovering journal of /dev/mapper/thin-vol
instead of what it should have printed which was this:
/sbin/e2fsck: Input/output error while recovering journal of /dev/mapper/thin-vol
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Mon, 2 Jul 2018 21:06:32 +0000 (17:06 -0400)]
tests: make generated test scripts read-only
Make generated test scripts read-only, to avoid errors by developers
editing the generated test scripts and then having them accidentally
clobbered when "make" is run again.
Change-Id: I60d417b816b7c559b5e05baf4167fc2cf2a871cf
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Fri, 29 Jun 2018 15:35:58 +0000 (11:35 -0400)]
e2fsck: if user declines to fix s_inodes_acount, abort
A recent commit,
d74eb7ef: "e2fsck: handle s_inodes_count corruption
properly" tries to fix s_inodes_count. However, if the user declines
to fix the invalid s_inodes_count, e2fsck needs to abort since
otherwise we can crash due to the insane s_inodes_count.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Lukas Czerner [Thu, 28 Jun 2018 13:59:09 +0000 (15:59 +0200)]
e2fsck: do not allow initialized blocks pass i_size
We do not allow initialized blocks to exist past i_size as this could
lead to stale data exposure.
Remove test f_pgsize_gt_blksize because it is testing for the scenario
that not allowed. f_eofblocks is already testing for this.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Thu, 28 Jun 2018 15:10:58 +0000 (11:10 -0400)]
e2fsck: fix hang in readahead code if last block in fs is metadata
If the last block the file system is metadata (very rare, but it can
happen, especially if e2fsck needs to relocate a bitmap block), e2fsck
will hang while trying to do readahead.
This problem was reported by Adam Buchbinder.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jiyong Park [Wed, 20 Jun 2018 05:21:54 +0000 (14:21 +0900)]
AOSP: e2fsdroid and mke2fs are dynamic executable in recovery partition
The two utilities are now converted to dynamic executables as shared
libraries are supported in recovery mode.
As part of the conversion, shared libraries that are depended from them
are also marked as recovery_available: true.
Bug:
79146551
Test: adb reboot recovery, and select 'Wipe data/factory reset'. The
data partition is formatted and there is no selinux denial.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Change-Id: I22fbc83a4ff0496096efca90721b0db1237c32cd
From AOSP commit:
df1f088849ed3336bb4f6f200c29b30682f15948
Theodore Ts'o [Tue, 26 Jun 2018 19:21:28 +0000 (15:21 -0400)]
tests, mke2fs: add option to suppress xattr copying to fix f_extent_htree
If the developer is running with SELinux enabled on /tmp, the
f_extent_htree regression test will fail because mke2fs by default
copies the extended attributes into the newly created file system (if
a directory hierarchy is specified via the -d option).
Fix this by adding a new extended option to mke2fs, -E no_copy_xattrs
and using it in f_extent_htree's test script.
Reported-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Tue, 26 Jun 2018 13:59:19 +0000 (09:59 -0400)]
tests: explicitly force resize2fs's use of lazy (or not)
Resize2fs will not enable lazy_itable if the kernel apparently does
not support that feature. This will cause spurious test failures when
the tests are running on such a system (or where sysfs is not
mounted).
So for the purposes of the regression test we need to force the use of
lazy_itable so that the results conform to expected golden output.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Tue, 26 Jun 2018 13:02:46 +0000 (09:02 -0400)]
debugfs: fix mknod command on some 32-bit platforms due to LFS
On some platforms the layout of struct stat changes if
_FILE_OFFSET_BITS is set to 64 (which force the use of 64-bit types
and 64-bit variants for system calls such as stat, lseek, etc.)
This is not true (mercifully) on i386, but it is true for the 32-bit
mips platform on Linux. This caused debugfs's mknod command to fail,
since it used struct stat to pass the desired st_mode and st_rdev
fields for the to-be-created device file or FIFO, and this would be
different for create_inode.c and debugfs.c.
Linking together different object files together compiled with
different values of _FILE_OFFSET_BITS is perilous, but for now, let's
fix the specific problem by passing the two fields in the stat
structure that we really care about. This fixes two regression tests
on the 32-bit MIPS platform: d_special_files and r_move_itable.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 14:16:38 +0000 (10:16 -0400)]
Update release notes, etc., for the 1.44.3-rc1 release
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 14:10:39 +0000 (10:10 -0400)]
Update Makefile.in files using "make depend"
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 14:04:12 +0000 (10:04 -0400)]
debian: update libext2fs.symbol to reflect new hashmap functions
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 14:03:20 +0000 (10:03 -0400)]
debian: update standards version to 4.1.4
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 13:43:18 +0000 (09:43 -0400)]
tests: fix up f_detect_junk and f_detect_xfs
The golden output files for these two tests were out of date.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 01:27:42 +0000 (21:27 -0400)]
resize: remove calculation of unused variable
Fix-Coverty-Bug: 1398367
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 01:21:49 +0000 (21:21 -0400)]
debugfs: suppress spurious "checksum errors" message for unrelated failures
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 25 Jun 2018 01:09:59 +0000 (21:09 -0400)]
e2fsck: only retry to open the file system when the superblock is corrupt
Previously we were always retrying the ext2fs_open2() call with the
EXT2_FLAG_IGNORE_SB_ERRORS flag. It only makes sense to do this if
the superblock is reported as corrupt. Otherwise, it's a waste of
time, and results in printing an extra set of error messages to annoy
the user.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 23:28:13 +0000 (19:28 -0400)]
e4crypt: remove unneeded stat(2) call in do_get_policy()
We don't need to conditionally use O_DIRECTORY when opening a
directory. Remove the unneeded stat, and a TOCTOU complaint from
Coverity.
Fixes-Coverity-Bug: 1293497
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 22:30:50 +0000 (18:30 -0400)]
tests: fix i_qcow test to properly test e2image's qcow-to-raw functionality
The test script was not properly checking e2image's ability to convert
a qcow2 image back to a raw image. Fix this, and also change it to
use /tmp for the temporary files to speed things up systems with a
ramdisk for /tmp.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 18:52:03 +0000 (14:52 -0400)]
e2image, libext2fs: check for corrupted qcow2 image
If the qcow2 image is corrupted, qcow2_write_image() will now return
an indication of this to e2image (the only current user of
qcow2_write_image).
Also fix how e2image prints an error message it can't understand the
qcow2 image.
Addresses-Coverity-Bug: 1297511
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 18:32:15 +0000 (14:32 -0400)]
libext2fs: explicitly ignore a possible unlink failure in ext2fs_free_icount
There's not much we can do if the unlink of the tdb file fails, and we
don't want to print a warning message from a library.
Fixes-Coverity-Bug: 1308364
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 18:00:14 +0000 (14:00 -0400)]
e2fsck: add error-checking when unlink tdb file for dir_info
Fixes-Coverity-Bug: 1308365
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 17:54:58 +0000 (13:54 -0400)]
mke2fs: add proper error checking in write_reserved_inodes
Fixes-Coverity-Bug: 1369034
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 17:52:10 +0000 (13:52 -0400)]
e2fsck: add proper error checking in move_quota_inode
Fixes-Coverity-Bug: 1369035
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 05:04:48 +0000 (01:04 -0400)]
e2image: Add an assertion/sanity check in initialize_qcow2_image()
This is mostly to shut up some coverity warnings, but in theory
fs->blocksize could have been corrupted outside of this function...
Fixes-Coverity-Bug: 1297492
Fixes-Coverity-Bug: 1297490
Fixes-Coverity-Bug: 1297488
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 04:39:37 +0000 (00:39 -0400)]
debugfs: avoid undefined bit shift in parse_uint()
The case is one that should never happen (and indicates a bug if it
does), but in that case, we should still avoid an undefiniced C
expression.
Fixes-Coverity-Bug: 1297494
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 04:32:51 +0000 (00:32 -0400)]
e2image: calculate progress rate using floating point
One of the divisions used when caluclate the progress rate was being
done as an integer instead of floating-point operation. This could
cause the end result to not be as accurate as we would like.
Fixes-Coverity-Bug: 1297513
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 04:25:14 +0000 (00:25 -0400)]
e4crypt: fix invalid errno comparison with a negative error code
Fixes-Coverity-Bug: 1292755
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Luis Hector Chavez [Tue, 19 Jun 2018 21:50:40 +0000 (14:50 -0700)]
AOSP: e2fsdroid: Correctly process the root inode
This change ensures that the root inode has the correct uid/gid by
calling androidify_inode() on it. It also sets android_configure = 1
when the u/gid mapping is provided.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
78561186
Google-Bug-Id:
110415537
Test: $ m # With BOARD_SYSTEMIMAGE_UID_MAP=655360 0 5000
$ simg2img ${OUT}/{system.img,system.raw.img}
$ mkdir tmp
$ sudo mount -o loop ${OUT}/system.raw.img tmp
$ stat --format="%u %g" tmp
655360 655360
Change-Id: I842a32b6d64439f9f16b9c6b66de20d4e4418aa8
From AOSP commit:
ee3f0f37c34d68aa7a96a36dea369acae312772c
Benno Schulenberg [Sun, 24 Jun 2018 03:14:14 +0000 (23:14 -0400)]
po: update nl.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 24 Jun 2018 03:00:50 +0000 (23:00 -0400)]
Fix gcc and clang warnings
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Eric Sandeen [Sat, 23 Jun 2018 22:04:19 +0000 (18:04 -0400)]
libext2fs: remove c99 idiom to fix build
hashmap.c: In function ‘ext2fs_hashmap_free’:
hashmap.c:72:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (size_t i = 0; i < h->size; ++i) {
^
hashmap.c:72:2: note: use option -std=c99 or -std=gnu99 to compile your code
make[2]: *** [hashmap.o] Error 1
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 21:54:28 +0000 (17:54 -0400)]
tests: fix f_bigalloc_orphan_list so it is not dependant on umask
Reported-by: Matthias Andree <matthias.andree@gmx.de>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Sat, 23 Jun 2018 21:33:58 +0000 (17:33 -0400)]
e2fsck: mark device inodes with EXT4_EXTENTS_FL bad
Mark device inodes bad if they have the EXT4_EXTENTS_FL set, since
this should never happen and likely shows the inode is corrupt.
Change-Id: I85ab667b39ff57c658a779e59f692a080217690e
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Sat, 23 Jun 2018 20:26:41 +0000 (16:26 -0400)]
tests: PAGE_SIZE larger than blocksize with hole
Verify correct operation in the case of writing files with allocated
blocks at the end of the file beyond i_size. This can happen for
PAGE_SIZE > blocksize, or through fallocate().
The f_eofblocks thest checks quite the same situation, but for broken
file system. This test is about correct file.
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Artem Blagodarenko <artem.blagodarenko@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Sat, 23 Jun 2018 18:30:52 +0000 (14:30 -0400)]
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 <andreas.dilger@intel.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 03:21:34 +0000 (23:21 -0400)]
libcom_err: handle error case when FD_CLOEXEC can't be set on debug FILE
Fixes-Coverity-Bug: 1049142
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 03:05:49 +0000 (23:05 -0400)]
libext2fs: simplify extent_fallocate()
The goal_distance variable is used in only one place in the
extent_fallocate() function, so set it right before it is used, and
eliminate one assignment of goal_distance which is never used before
it gets overwritten.
Fixes-Coverity-Bug: 1307694
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 02:53:00 +0000 (22:53 -0400)]
libsupport: fix (very potential) NULL dereference
It's a very rare set of circumstances (requiring deleting profile
sections, which e2fsprogs doesn't do) that might trigger a NULL
derference, but fix it for robustness's sake, maybe some day someone
will use that functionality.
Fixes-Coverity-Bug: 207508
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 02:33:39 +0000 (22:33 -0400)]
libext2fs: fix uninitialized variable dereference in extent_bmap()
The code path was failing to initialize the logial block number hint
in the allocation context. It's not currently being used, but it
might be in the future, and it trips warnings in static code
analyzers.
Fixes-Coverity-Bug: 709545
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 02:20:51 +0000 (22:20 -0400)]
libsupport: fix memory leak in error path in quota_compute_usage()
Fixes-Coverity-Bug: 1362023
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sat, 23 Jun 2018 01:57:40 +0000 (21:57 -0400)]
libext2fs: fix potential resource leak in ext2fs_file_write
If EXT2_FLAG_SHARE_DUP is set, and ext2fs_bmap2() fails, it's possible
that we will leak the allocated memory in new_block.
Fixes-Coverity-Bug: 1437473
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Shuichi Ihara [Wed, 2 May 2018 04:26:06 +0000 (22:26 -0600)]
misc: add e2mmpstatus utility via dumpe2fs
e2mmpstatus is a Multi-Mount Protection (MMP) helper utility to read
an MMP block to see if it is being updated. It can also output the
latest update time, nodename, and device from the MMP block.
This is useful for HA and other maintenance scripts to determine if
the filesystem is in use on another node, and which node it is.
Signed-off-by: Shuichi Ihara <sihara@ddn.com>
Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Moved e2mmpstatus checking/dumping code to be part of dumpe2fs rather
than a standalone program, using the "-m" option to check MMP status,
and "-i" to dump info. If dumpe2fs is called as "e2mmpstatus" (and
also "mmpstatus" for compatibility reasons), assume "-m" is specified.
Re-use the existing MMP block handing routines (with some changes) to
check and dump the MMP block, rather than adding duplicate versions.
Modify dumpe2fs to exit with a non-zero error code if there is an
error while reading the filesystem metadata or MMP block, or if
"-m" is used with the "mmp" feature and is in use by another node.
Add a configure check for gethostname() rather than depending on
_BSD_SOURCE or _XOPEN_SOURCE to be set.
Update the f_mmp, m_mmp, m_mmp_bad_csum, and m_mmp_bad_magic tests
to use e2mmpstatus to check and dump the MMP state before and after
e2fsck is run to verify that the tool is working correctly.
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 22:08:54 +0000 (18:08 -0400)]
e2fsck: set dir_nlink feature if large dir exists
If there is a directory with more than EXT2_LINK_MAX (65000)
subdirectories, but the DIR_NLINK feature is not set in the
superblock, the feature should be set before continuing on
to change the on-disk directory link count to 1.
While most filesystems should have DIR_NLINK set (it was set
by default for all ext4 filesystems, and all kernels between
2.6.23 and 4.12 automatically set it if the directory link
count grew too large), it is possible that this flag is lost
due to disk corruption or for an upgraded filesystem. We no
longer want kernels to automatically enable features.
Addresses: https://bugzilla.kernel.org/show_bug.cgi?id=196405
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 21:54:50 +0000 (17:54 -0400)]
tests: remove pre-generated f_extent_htree image
The f_extent_htree test depends on the "mke2fs -d" functionality
that did not exist in the maint branch when the patch was landed.
On master this functionality exists and should be used instead of
a pre-generated image. That exercises the "mke2fs -d" functionality
as well as e2fsck better.
[ Fixed to add missing expect.pre.? files --tytso ]
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Wed, 2 May 2018 04:26:03 +0000 (22:26 -0600)]
tests: don't run sed multiple times on test output
Don't call sed multiple times on the output, and avoid the use
of temporary files, or if possible. It would be convenient to
use "sed -i" to only update the output file once, but this is
not portable to all platforms.
[ Fixed a few test regression failures --tytso ]
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Wed, 2 May 2018 04:26:02 +0000 (22:26 -0600)]
tests: remove redundant sed filtering
Now that the majority of device name filtering is in filter.sed,
it does not need to be specified explicitly for every test.
Fix the error message printed in debugfs when opening the device
to match that used in other tools. This simplifies the filtering,
and will be helpful if debugfs messages are internationalized.
[ Fixed up some test failures in m_hugefile t_uninit_bg_rm --tytso ]
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 16:37:12 +0000 (12:37 -0400)]
ext2fs: annotate superblock/inode offsets
Add byte offsets for the fields in ext2_super_block and ext2_inode
for convenience when debugging on-disk structures.
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 15:43:54 +0000 (11:43 -0400)]
tests: clean up $DEBUGFS_EXE usage in scripts
Instead of putting the entire test script under an implicit
"if test -x $DEBUGFS_EXE" conditional (sometimes indenting
the code, and sometimes not), rather check for the reverse
and exit the test script early if $DEBUGFS_EXE is missing.
In some places, tests were running $DEBUGFS_EXE directly,
when they should be running $DEBUGFS (which will run with
Fortify, or other options).
[ Fixed up missing exit statement in f_detect_junk. --tytso ]
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 15:42:41 +0000 (11:42 -0400)]
tests: don't unlink test image if SKIP_UNLINK set
Don't register a trap to unlink $TMPFILE at the test exit if
SKIP_UNLINK is set. Otherwise, this makes it difficult to
debug a failing test.
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Andreas Dilger [Fri, 22 Jun 2018 15:42:14 +0000 (11:42 -0400)]
tests: don't use a sparse test file
If the TEST_BITS file is sparse, then the "debugfs -R write"
command may skip holes in the file when copying it into the
test image (depending on whether SEEK_HOLE/SEEK_DATA and/or
FIEMAP are available in the copy_file() function).
This was causing test failures on MacOS in the f_dup_resize
and d_loaddump tests because the TEST_BITS file was the
compiled "debugfs" binary, which apparently has holes when
built on MacOS, and the number of blocks allocated in the
test image was reduced as a result. This caused the expect
output to differ in the summary line and resulted in failure.
Instead of using the debugfs binary for TEST_BITS, generate
a temporary file using /dev/urandom, if available. If not,
fall back to the old behaviour or using debugfs.
[ Fixed up use of non-POSIX /bin/sh constructs and add test_data.tmp to
.gitignore and files to be deleted on a make clean. --tytso ]
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Fri, 22 Jun 2018 14:46:52 +0000 (10:46 -0400)]
libext2fs: don't corrupt an blkmap64_rb when marking a range of size zero
Calling ext2fs_mark_block_bitmap_range2() with a count of zero can end
up corrupting the red-black block bitmap structure, since a an entry
in the rbtree with zero-length extent can end up causing the
find_first_{zero,set} operations to return incorrect results.
This was found by Adam Buchbinder, who created a fuzzed file system
using which AFL that caused e2fsck to hang in an infinite loop in in
e2fsck's readahead code.
Added a regression test to detect this failure.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Lukas Czerner [Thu, 21 Jun 2018 13:19:56 +0000 (15:19 +0200)]
filefrag: don't ignore fsync errors
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jiyong Park [Thu, 24 May 2018 05:07:52 +0000 (14:07 +0900)]
AOSP: Mark as recovery_available:true
Libraries that are direct or indirect dependencies of modules installed
to recovery partition (e.g. adbd) are marked as recovery_available:
true. This allows a recovery variant of the lib is created when it is
depended by other recovery or recovery_available modules.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
79146551
Test: m -j
Change-Id: I9db889c15e1f563a1e3f4e7dc5b630d19e3cf4c0
From AOSP commit:
4a9d5f4211818c70a1b2414e3774197386b7f245
David Anderson [Fri, 11 May 2018 20:34:34 +0000 (13:34 -0700)]
AOSP: e2fsck: imply -f when using -E unshare_blocks
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Test: e2fsck -E unshare_blocks does a full scan
Change-Id: Idc36ceba3bf24e1fb1487feedefe9a68f9acc7f3
From AOSP commit:
7c180d6598363722de6195d142d7677bbc2b0161
David Anderson [Fri, 27 Apr 2018 23:10:29 +0000 (16:10 -0700)]
AOSP: e2fsck: allow read-only testing if -E unshare_blocks will succeed
If -E unshare_blocks is used with -n, it will normally fail since the
filesystem is read-only. For Android's "adb remount" it is more useful
to report whether or not the unshare operation would succeed, were the
filesystem writable. We do that here by ignoring certain write
operations if -E unshare_blocks is specified with -n. It is not perfect,
since the actual unshare operation could still fail (for example if
new extents need to consume additional blocks).
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Test: e2fsck -f -n -E unshare_blocks on deduplicated image
Change-Id: Ia50ceb7b3745fdf8766cff06c697818f07411635
From AOSP commit:
9e76dc0f65d8a8dec27f57b9020e81cbbbe12faf
Hidehiko Abe [Thu, 10 May 2018 17:31:37 +0000 (02:31 +0900)]
AOSP: Support UID/GID mapping
This reverts commit
797c9c47d8419f58f752a96ae972423ca32b4c30.
with the fix.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
78561186
Test: Ran on DUT.
Change-Id: I0d903cb08373aa5e9d79a1601d2e5ea9a59573fe
From AOSP commit:
5250966f2b7b7b4643235551b125ddbcfbd3d609
Tao Bao [Mon, 23 Apr 2018 21:10:59 +0000 (14:10 -0700)]
AOSP: libext2fs: Track the libsparse API change.
libsparse is updating the 'len' parameter, from 'int' to 'size_t', in
the callback parameter of sparse_file_foreach_chunk(). The value
represents the chunk size, which could be legitimately larger than
INT_MAX.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
78432315
Test: `m dist` with aosp_marlin-userdebug
Change-Id: I35f8a528aff461ce4d3b492a7ca2d4a23592be54
From AOSP commit:
019bed178935585d28cf702a8090a5598415312b
David Anderson [Mon, 5 Mar 2018 20:52:13 +0000 (12:52 -0800)]
AOSP: e2fsck: Add an extended option for unsharing blocks.
Add an -E unshare_blocks flag for unsharing blocks that were created for
a filesystem with block sharing enabled. If the filesystem does not have
this feature enabled, the flag has no effect. If the filesystem does not
have free space, e2fsck will error.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Test: f_unshare_blocks_no_space, f_unshare_blocks_ok
Change-Id: I8821353e9e6200c6c0c71dd22f4f43d796fc720c
From AOSP commit:
8ba190e3135d61501d3a694b6960c2fbee98e7a6
David Anderson [Sat, 3 Mar 2018 02:44:14 +0000 (18:44 -0800)]
AOSP: e2fsck: Skip duplicate blocks when RO_COMPAT_SHARED_BLOCKS is set.
If RO_COMPAT_SHARED_BLOCKS is set, the duplicate block pass is skipped
entirely.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Test: f_shared_blocks_ok
Change-Id: I49a9d6c5012d5e76c9a47578a45cae7484df4c4a
From AOSP commit:
93d12bc16bffd39a56b1e08aefbc641eba298077
David Anderson [Mon, 9 Apr 2018 19:26:18 +0000 (12:26 -0700)]
AOSP: libext2fs: fix indentation whitespace
This fixes some whitespace inconsistency caused by change 3d7abcc.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Change-Id: I39862e542d1a502fac2f31ff08177d16db56d0c0
From AOSP commit:
df538fa7eef0e67546f8abfc7d4eb1e8503cd9a4
Jin Qian [Thu, 1 Feb 2018 01:46:46 +0000 (17:46 -0800)]
AOSP: libext2fs: increment i_blocks for shared blocks
This fixes an incorrect i_blocks count when using shared blocks.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Change-Id: I44a4997f6a93f2a3fc9aa362fd39d72e7cc9ff84
From AOSP commit:
632cc1f02d47ce54d9f17ca5d80c2d7ba2851020
Jin Qian [Mon, 22 Jan 2018 18:47:41 +0000 (10:47 -0800)]
AOSP: libext2fs: add EXT2_FLAG_SHARE_DUP to de-duplicate data blocks
When assigning physical address for new data block, search sha
of existing blocks for match. If there's a match, reuse address
of the matched block.
Also set EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS in de-duped image.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Change-Id: I8d2d22e9c301264413c1454c84d7bf6bb32ac5c0
From AOSP commit:
3d7abcc7843d6dfdfdafabf43f5e072cb7aaffbd
Jin Qian [Sat, 20 Jan 2018 01:44:07 +0000 (17:44 -0800)]
AOSP: e2fsdroid/libext2fs: move hashmap into libext2fs
Also update it so that hash key can be arbitrary length instead of
null terminated string.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id:
64109868
Change-Id: Icb0d91d5d753e86edaffcacb043b6f1aa429a528
From AOSP commit:
9491100ffb74b13a10b5b0425b7691c3449ac2e6
Jan Kara [Tue, 19 Jun 2018 15:34:46 +0000 (11:34 -0400)]
e2fsck: report only one sb corruption
check_super_value() does not terminate in case of error anymore since
c8b20b40ebf0 "misc: add plausibility checks to
debugfs/tune2fs/dumpe2fs/e2fsck" which removed the PR_FATAL flag from
PR_0_SB_CORRUPT problem. This results in potentially many errors for
superblock being printed including the long message about how to deal
with corrupted superblock. Restore the original behavior of reporting
only one error and also remove the comments 'never get here' as they are
not true anymore.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 15:33:11 +0000 (11:33 -0400)]
ext2fs: don't check s_inodes_count with EXT2_FLAG_IGNORE_SB_ERRORS
Don't verify s_inodes_count is correct with EXT2_FLAG_IGNORE_SB_ERRORS
flag set. This allows e2fsck and debugfs to fix this value.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 15:26:40 +0000 (11:26 -0400)]
debugfs: allow fixing superblock errors in catastrophic mode
Open filesystem with EXT2_FLAG_IGNORE_SB_ERRORS flag in catastrophic
mode so that superblock errors can be fixed in debugfs.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 15:15:53 +0000 (11:15 -0400)]
debugfs: allow read-write opening in catastrophic mode
Allow filesystem to be open read-write in catastrophic mode so that one
can fixup e.g. superblock breakage. The CHECK_FS_BITMAPS flag to
common_args_process() still guards us from doing operations on bitmaps
which we don't load in this mode.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 15:23:37 +0000 (11:23 -0400)]
e2fsck: handle s_inodes_count corruption properly
When s_inodes_count would overflow given number of groups and inodes per
group, we cannot currently fix the breakage in e2fsck as that requires
trimming number of groups or inodes per group which both means data &
inode migration etc. Just trimming sb->s_inodes_count is not enough as
kernel's inode allocation code is not able to handle filesystems where
not all inodes in the last group are usable. So don't pretend we can fix
s_inodes_count overflow by just trimming the s_inodes_count value.
When s_inodes_count is just wrong but will not overflow, let's fix it.
Also move this check before we use s_inodes_count for checking
s_first_ino.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 12 Jun 2018 09:53:23 +0000 (11:53 +0200)]
e2fsck: allow to fix some superblock corruptions
Add a flag to ext2fs_open() which allows to open a filesystem even if
superblock is somewhat inconsistent. Use this flag from e2fsck as a last
resort to try to fix the superblok.
Currently, the flag does nothing. We'll relax checks in ext2fs_open()
once e2fsck is able to handle corresponding corruption gracefully.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 14:45:16 +0000 (10:45 -0400)]
libext2fs: don't create filesystems with meta_bg and resize_inode
ext2fs_initialize() may end up enabling meta_bg feature for filesystem
which have resize_inode. Such combination is invalid to make sure we
disable resize_inode when enabling meta_bg.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 14:43:48 +0000 (10:43 -0400)]
resize2fs: add missing EOL to error message
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 03:19:55 +0000 (23:19 -0400)]
libext2fs: fix overflow when checking s_inodes_count in ext2fs_open()
The check whether s_inodes_count is correct in ext2fs_open() can
overflow and thus not catch all problematic cases. Fix the test.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara [Tue, 19 Jun 2018 03:19:27 +0000 (23:19 -0400)]
libext2fs: fix possible inode count overflow when creating fs
If blocks count is exactly 1<<32, then the code computing number of
inode count in ext2fs_initialize() will overflow and set number of
inodes to 0 (which will be later fixed up to EXT2_FIRST_INODE(super)+1).
Fix the off-by-one bug in the check.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Wed, 13 Jun 2018 22:55:56 +0000 (18:55 -0400)]
libext2fs: allow file systems which have insane values in s_desc_size
If the 64-bit feature is not set, the kernel does not pay attention to
the s_desc_size field in the superblock. Change ext2fs_open2() and
other library functions to similarly ignore s_desc_size if the 64-bit
feature is not set.
The EXT2_DESC_SIZE macro should be used in most cases instead of
referecing the s_desc_size field directly.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Wed, 13 Jun 2018 22:41:45 +0000 (18:41 -0400)]
debugfs: add support to display details of extended attribute structures
Teach the inode_dump and block_dump commands the -x option, which
tries to interpret the data structures as xattr data strucgtures.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 27 May 2018 20:09:28 +0000 (16:09 -0400)]
e4defrag: fix typo in man page
Addresses-Launchpad-Bug: #1743553
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Sun, 27 May 2018 03:11:18 +0000 (23:11 -0400)]
debugfs: add -b and -e options to the inode_dump command
Teach the inode_dump command to dump out just the i_block array and
the extra space in the inode, as a convenience to someone
investigating a corrupted inode.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Trần Ngọc Quân [Thu, 24 May 2018 21:58:24 +0000 (17:58 -0400)]
po: update vi.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Yuri Chornoivan [Thu, 24 May 2018 21:58:24 +0000 (17:58 -0400)]
po: update uk.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Göran Uddeborg [Thu, 24 May 2018 21:58:24 +0000 (17:58 -0400)]
po: update sv.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jakub Bogusz [Thu, 24 May 2018 21:58:24 +0000 (17:58 -0400)]
po: update pl.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Samuel Thibault [Thu, 24 May 2018 21:58:24 +0000 (17:58 -0400)]
po: update fr.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Antonio Ceballos [Thu, 24 May 2018 21:58:23 +0000 (17:58 -0400)]
po: update es.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Petr Pisar [Thu, 24 May 2018 21:58:23 +0000 (17:58 -0400)]
po: update cs.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Chandan Rajendra [Wed, 23 May 2018 03:22:07 +0000 (08:52 +0530)]
e2fsprogs: Use 32-bit variant of ext2fs_swab to read i_projid
i_projid is a 32-bit field of the inode. Hence this commit uses
ext2fs_swab32() to convert the i_projid field from the on-disk little
endian format to the host cpu format. Without this change, project quota
consistency check used to fail on big endian powerpc systems.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Theodore Ts'o [Tue, 15 May 2018 00:12:59 +0000 (20:12 -0400)]
Update release notes, etc., for the 1.44.2 release
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jakub Bogusz [Mon, 14 May 2018 23:57:37 +0000 (19:57 -0400)]
po: update pl.po (from translationproject.org)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 14 May 2018 23:16:26 +0000 (19:16 -0400)]
debian: demote e2fsprogs from Essential: yes to XB-Important: yes
Addresses-Debian-Bug: #474540
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o [Mon, 14 May 2018 22:22:09 +0000 (18:22 -0400)]
mke2fs: print error string if ext2fs_close_free() fails
There are multiple reasons why ext2fs_close_free() might fail, not
just an I/O error while writing out a backup superblock. Print the
error code, and then allow mke2fs to exit with an exit status code of
1, instead of whatever random error code ext2fs_close_free() might
have returned with.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
bjornpagen@gmail.com [Mon, 14 May 2018 02:07:40 +0000 (22:07 -0400)]
Use @AR@ instead of hardcoded 'ar'
e2fsprogs currently hardcodes 'ar' in one of it's makefiles. This is
fixed with this patch:
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Lukas Czerner [Tue, 10 Apr 2018 12:09:33 +0000 (14:09 +0200)]
e2fsprogs: fix Free Software Foundation address
This is mostly automatic replace of Free Software Foundation address in
all our files with the correct address that can be found at
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>