We don't fail the "make all" if the "makeinfo" command isn't there, so
we shouldn't fail the "make install", either.
Addresses-Sourceforge-Bug: #1586610
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Change the prompt so it is clear to the user that e2fsck will be
clearing the htree information, not the directory inode itself, when
the htree information has proven to be corrupt.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
If a directory's i_size is bigger than the number of blocks, don't try
to allocate extra empty blocks to the end of the directory; there's no
real point to do that. Also, if a directory's i_size is not a
multiple of the blocksize, flag that as a mistake so it can be fixed.
This more elegantly addresses the problem which was found on Bas van
Schaik's filesystem.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add two new functions which allows the caller to examine the last
directory block entry added to the list, and to drop if it necessary.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Turns out a "should never happen" error can indeed happen very easily
if a directory with an htree index has an incorrect, and too-large,
i_size field. This patch fixes this so that we handle this situation
gracefully, allowing filesystems with this error to be fixed.
In another patch I will clean up the specific problem which caused the
internal "should never happen" error from happening at all, but patch
will prevent e2fsck from crashing, and prompt the user to remove the
htree index, so it can be rebuilt again after pass 3.
Thanks to Bas van Schaik at Tetra for giving me access to his system
so this problem could be debugged.
Addresses-Launchpad-Bug: #129395
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Use ext2fs_get_next_inode_full() in resize2fs and clean up large inode
handling; previous attempt was not properly handling all cases, and
was incorrectly setting i_extra_isize. This caused some extended
attributes to get removed or randomly assigned to other inodes as a
result of the resize, which can be unfortunate on systems using
SELinux.
The previous commit didn't fix things completely on big-endian systems
like PowerPC.
Addresses-Red-Hat-Bugzilla: #434893
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Clearing SPARSE_SUPER is dangerous; it can result in a filesystem
which e2fsck can't fix easily. Since there is very few good reasons
for wanting to turn this feature off, disable tune2fs's abiity to do
this. Users who really want this can use debugfs.
Also, deprecate the tune2fs -s option. Remove it from the man page
and usage message.
Addresses-Sourceforge-Bug: #1840286
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Make debugfs and tune2fs reference each other in the "SEE ALSO"
section.
Addresses-Sourceforge-Patches: #1399325
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The image contains an inode past the resize point with an inline xattr
value of "propervalue". It also contains deleted inodes which had the
xattr value "oldvalue".
When resize2fs moves the inode, it should copy the xattr as well, so
that post-resize we see "propervalue" not "oldvalue".
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
inode_scan_and_fix() in resize2fs needs to do read/write of the full
inode to be sure it gets all data from larger (>128 byte) inodes.
Addresses-Red-Hat-Bugzilla: #434893
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Previously we just let the kernel and e2fsck do this automatically,
but e2fsck will no longer automatically clear the large_file feature.
It still isn't really necessary to worry about this feature flag
explicitly, but some users seem to care.
Addresses-Red-Hat-Bugzilla: #258381
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Stop clearing the EXT2_FEATURE_RO_COMPAT_LARGE_FILE flag automatically
if there are no large files in the filesystem. It's been almost a
decade since there have been kernels that don't support this flag, and
e2fsck clears it quietly without telling the user why the filesystem
has been changed.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
If a device mapper volume disappears while libblkid code is running,
it is possible for the devicemapper code to return errors, and since
libblkid wasn't checking for error returns, it would dereference a
null pointer and crash. Add error checking to prevent this.
Addresses-RedHat-Bugzilla: #433857
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add a flag which returns the partially completed filesystem object so
e2fsck can print more intelligent error messages.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The dumpe2fs syntax documented in the man page has been broken for
some time due to getopt() changes. Change the option syntax in
dumpe2fs to be one which is more extensible and consistent with the
format for extended options in mke2fs and tune2fs.
Addresses-Sourceforge-Bug: #1830994
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This requires an fsck aftwards. We don't allow setting the
resize_inode feature because extensive work to tune2fs or e2fsck to
safely relocate blocks is necessary in order to reserve the blocks
needed by the resize inode.
Addresses-Red-Hat-Bugzilla: #167816
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Use a more abstract set of feature tests to avoid merge conflicts as
we add support for new features in the maint, master, next, and pu git
branches.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This creates a new enhanced edit_feature function for libe2p which
supports a different set of feature flags that are OK to clear as
opposed to set, and which returns more specific information about why
the user provided an invalid edit feature command.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Document in the e2fsck man page that e2fsck finds duplicate filenames
only when the -D option is passed to e2fsck.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
According to the policy, UIDs and GIDs in the range 1-100 are reserved
to be globally allocated by the base-passwd package. The libuuid1
postinstall script passes in UID_MIN=1 and GID_MIN=1. The useradd and
groupadd commands seems to skip UID's between 1 and 100 anyway, but
it's confusing, so we should pass in UID_MIN=100 and GID_MIN=100 for
clarity and in case useradd and groupadd ever changes their behaviour.
Addresses-Debian-Bug: #466929
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
If a block buffer was not supplied and ext2fs_alloc_block() returned
with no errors, it would leak a temporary block buffer.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This is useful for mballoc to align block allocation on the RAID
stripe boundaries.
Signed-off-by: Rupesh Thakare <rupesh@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>