code accidentally had the INDEX_FL backwards compatibility code
removed. E2fsck will now fix HTREE corruptions in preen mode, and
mke2fs will not create filesystems with the dir_index flag set
by default. (The user has to specifically request it.)
filesystems explicitly specified on the command line were
not being checked in parallel, due to a logic bug
introduced in to support the FSCK_MAX_INST environment
variable.
caret ('^') character to negate feature sets when using
the -O option. Define the has_journal feature to avoid
confusion about what ^has_journal means.
-R option which skips the root filesystem will skip all of
them. (Addresses Debian bug #159423). Note! This is not
a precedent for dealing intelligently with any other kind
of doubled entry in /etc/fstab!
tune2fs.c (update_feature_set): Allow directory indexing flag to
be set. If so, set the default hash to be TEA, and
initialize the hash seed to a random value.
line, default to -As. (Addresses Debian Bug #153102)
badblocks.8.in: Clarify why it's bad to do a non-destructive
test on a r/o mounted filesystem. (Addresses Debian Bug
#131350)
Z, and explain that chattr can't set or set these flags.
(Addresses Debian Bug #151990)
fsetflags.c (fsetflags), fgetflags.c (fgetflags.c), setflags.c
(setflags), getflags.c (getflags): Check to make sure the
file is a regular file or a directory before attempting to
use the ext2 ioctls. Otherwise, return EOPNOTSUPP.
(Addresses Debian Bug #152029).
make sure we gracefully clean up and only exit at safe points.
For fsck, we pass the SIGINT/SIGTERM signal to the child processes,
so they can do their own cleanup.
8192-byte and 16384-byte blocksize filesystems.
Change the default bytes-per-inode ratio of a new filesystem to be at most
one inode per block for large blocksizes.
a read/write test on the disk. Update the man pages to encourage
using the -c option, and to discouraging running badblocks separately,
since users tend to forget to set the blocksize when running
badblocks.
since files which get dropped into that directory may have come
from a protected directory, and the system administrator may not
deal with immediately. (Addresses Debian bug #118443)
- Renamed linux/list.h to be linux/linked_list.h to work around a
problem caused by diet libc insistence to search the kernel
header files ahead of all other files in the include path,
including the user specified include files.
- Worked around a bug in diet libc which core dumps when using
putc with stderr by using fputs instead. As a bonus, this
also shaved a few bytes off of com_err.o.
- Fixed a real bug in debugfs which was detected because diet libc
was more sensitive than glibc when incorrectly using fclose()
where pclose() is required.
which signals that a particular inode should not have the
last bits of data (the "tail") be merged with another
file. This is necessary to keep programs like LILO happy.
any sectors in the same filesystem block after the superblock.
The latter will remove (for example) swapspace signatures
on 4kB+ blocksize filesystems. Also when zeroing the "end"
of the filesystem don't actually zero the start of a very
small device (less than 128kB).
function in get_device_by_label.c to allow the use of
UUID= or LABEL= when creating filesystems which use external
journal dev (e.g. mke2fs -J device=LABEL=<journal_label>).
tune2fs.c: Use superblock s_journal_uuid to locate an external
journal device instead of s_journal_dev when removing it.
Allow opening journal devices to set the label and UUID
in the ext2 superblock.
mke2fs.c, tune2fs.c: Free journal_device after use, as it is
malloc'd in interpret spec.
removing an in-filesystem journal, clear out the journal
inode and update the filesystem accounting structures so
we don't have to run e2fsck to clean up after ourselves
of the filesystem to determines its type.
fsck.c (fsck_device, ignore, interpret_type): Call identify_fs
if the type specified in /etc/fstab is "auto".
tune2fs.c, mke2fs.c, util.c, util.h (print_check_message): Move the
message which displays how often the filesystem will be checked from
mke2fs into a utility subroutine. Then cause tune2fs to call that
function to display the message after adding a journal to a
filesystem.
mke2fs.8.in: Add manual page fixups and explanation for why it's good
to check filesystems periodically from Andreas Dilger.
configure.in: Add --disable-resizer, --disable-imager, and
--disable-debugfs switches, which allow people who are building boot
floppies to build a very restricted e2fsprogs distribution. Note:
these functions limit the functions in the shared library, so beware!
Makefile.in, ChangeLog:
Makefile.in: Don't recurse into debugfs and resize subdirectory if
--disable-debugfs or --disable-resizer is given as a configuration
option.
ChangeLog, Makefile.in:
Makefile.in: Don't build e2image if --disable-imager is specified to
configure.
dumpe2fs.c: Use WORDS_BIGENDIAN to determine whether or not we're
(not) using i386 byte order.
dumpe2fs.c, mke2fs.c: Stop using the compatibility badblocks function,
and use the ext2fs_badblocks_* functions instead.
ChangeLog, inode.c, tst_iscan.c:
inode.c, tst_iscan.c: Stop using the compatibility badblocks function,
and use the ext2fs_badblocks_* functions instead.
ChangeLog, badblocks.c:
badblocks.c: Stop using the compatibility badblocks function, and use
the ext2fs_badblocks_* functions instead.
chattr.c, lsattr.c: Don't use _FILE_BITS_OFFSET method of using the
64-bit function, since this changes the expected size of struct
dirent. Instead use lseek64 explicitly.
Makefile.in: Move include/asm/types.h.in to lib/ext2fs/ext2_fs.h.in.
wordwrap.pl: Add some rules which help fix up the dependencies.
Many files:
Move include/asm/types.h.in to lib/ext2fs/ext2_fs.h.in.
partinfo.c (main): Use unsigned long instead of long when querying the
size of a device using the BLKGETSIZE ioctl, to remove the 1TB limit
(and turn it into a 2TB limit :-)
fsck.8.in, fsck.c (compile_fs_type, fs_type, ignore): Fix handling of
-t option to be more intuitive. Also add support for the Mandrake -t
loop hack. See man page for description of new -t semantics.
badblocks.c, chattr.c, dumpe2fs.c, e2image.c, findsuper.c, lsattr.c,
mke2fs.c, mklost+found.c, tune2fs.c, util.c: Change location of
ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, resize2fs.h:
resize2fs.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, debugfs.h:
debugfs.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, e2fsck.h, scantest.c:
e2fsck.h, scantest.c: Change location of ext2_fs.h to be
ext2fs/ext2_fs.h
ChangeLog, Makefile.in, tst_uuid.c, uuid_time.c:
tst_uuid.c, uuid_time.c: Remove unneeded #include of ext2_fs.h
ChangeLog, Makefile.in, e2p.h:
e2p.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
ChangeLog, Makefile.in, test_icount.c, test_rel.c:
test_icount.c, test_rel.c: Change location of ext2_fs.h to be
ext2fs/ext2_fs.h
Clarify some of the Changelog entries.
ChangeLog, fsck.8.in, mke2fs.8.in, tune2fs.8.in:
fsck.8.in, mke2fs.8.in, tune2fs.8.in: Fix typo's and make other
clarifications suggested by Andreas Dilger.
ChangeLog, tune2fs.c:
tune2fs.c (update_feature_set): Clean up some printf messages.
mke2fs.c (PRS): Integrated changes from Andreas Dilger which make the
revision superblock field be set to the correct value depending on if
superblock features are set.
fsck.c (PRS): fsck -? now prints the usage message.
ChangeLog, jfs.h:
jfs.h (JFS_DEBUG): Don't define JFS_DEBUG for non-kernel builds; if
necessasry it can be set with configure --enable-jfs-debug
badblocks.8.in: Fixed man page to describe the first optional
parameter to badblocks as last_block, instead of num_blocks. (Debian
nbug #87216)
badblocks.c: Change the blocks_count variable to be last_count, which
is a more accurate description of the variable.
dumpe2fs.c (main): Add new flag, -i, which will allow dumpe2fs to dump
out the filesystem statistics from an ext2 image file.
Many files:
e2image.8.in: New manual page
badblocks.8.in, e2label.8.in, mke2fs.8.in mklost+found.8.in,
tune2fs.8.in: Update location of e2fsprogs to be
http://e2fsprogs.sourceforge.net.
fsck.c (device_already_active): If we're not able to determine the
base device, we should assume that the device is already active in
order to force serialization.
tune2fs.c (parse_tune2fs_options): Interpret -c 0 as -c -1 (for
backwards compatibility with older kernels). -c 0 makes more sense to
users.
tune2fs.8.in:
Update tune2fs manual papge so that it is up to date.
tune2fs.c (remove_journal_device): If the force flag is given, tune2fs
will remove the journal device information from the superblock even if
tune2fs failed to open the journal device or otherwise other failed to
remove the filesystem from journal device.
(parse_tune2fs_options): Fix -j option so that it works (it was
missing the open_flag being set to EXT2_FLAG_RW).
(main): Accept "-U clear" to set a null UID.
mke2fs.c (create_journal_dev): Call ext2fs_create_journal_superblock()
first, so if it's going to error out, the user finds out before
waiting for the entire device to get zero'ed.
ChangeLog, util.c:
util.c (parse_journal_opts): Remove code which allowed a bare number
to be treated as a journal size.
ke2fs.8.in, tune2fs.8.in: Change man paegs to document that the
journal must be bewteen 1024 and 10,240 file system blocks.
mke2fs.c, tune2fs.c: Change to use figure_journal_size()
util.c, util.h (figure_journal_size): Change journal_default_size into
routine which also converts the requested journal size into filesystem
blocks and does bounds checking to make sure the journal is sized
reasonably. Renamed function to journal_default_size.
parse_journal_opts): Remove bounds check for the journal size, since
this is now done in figure_journal_size, and based on the number of
filesystem blocks, as opposed to using the absolute size of the
journal.
mke2fs.c (main): Flush out the "creating journal" message. Also
handle the case where the default journal size returns zero blocks ==
no journal. Print out how often the filesystem will be checked.
tune2fs.c, mke2fs.c, tune2fs.8.in, mke2fs.8.in: Change user interface
so that -J is used to specify journal options, and -j is used to
request creation of a journal using default values. (This is a UI
change, but we haven't done a formal release, and it makes things much
more consistent with the rest of the options out there.)
tune2fs.c: Add support for removing a filesystem from an external
journal; we correctly remove the filesystem UUID from the external
journal's filesystem list.
util.h, util.c (journal_default_size): New function from Andreas
Dilger to calculate an appropriate default journal size given a
filesystem size.
util.c (parse_journal_opts): Allow the creation of a journal as small
as 1MB.
mkjournal.c (ext2fs_add_journal_device): Fix bug where the device
number of the filesystem (instead of the journal) was being dropped
into s_journal_dev.
ChangeLog, dumpe2fs.c:
dumpe2fs.c (print_journal_information): Use s_first_data_block to find
the correct block to read the journal superblock.
tune2fs.c: Changed the external journal code so that it simply adds a
filesystem to a journal; the journal must have bene created via
"mke2fs -O journal_dev /dev/XXX".
mke2fs.c: Add support for creating an external journal device by using
the command "mke2fs -O journal_dev /dev/XXX". Also changed the
external journal code so -j device=/dev/XXX it simply adds a
filesystem to that journal; the journal must have been created via
separate step.
dumpe2fs.c (print_journal_information): Add support for dumping
information about an external journal device.
mke2fs.c: Add new filesystem types, largefile and largefile4, for
those filesystems whose average inode size is 1MB and 4MB,
respectively. Allow the inode ratio specified to be has high as 4MB.
Make the s_max_mount_count vary between 20 and 40, to avoid needing to
check all of the filesystems at the same time. Add some random jitter
to the s_max_mount_count value so that we avoid checking all of the
filesystems at the same time when we reboot.
tune2fs.c (add_journal): Minor fixes from Andreas Dilger. Flush stdout
after printing in-progress message.
(main): Exit with status code 1 if we failed to determine the mount
status of the device.
ChangeLog, gcc-wall-cleanup:
gcc-wall-cleanup: Remove additional annoying warning messages emited
by gcc 2.95.2.
ChangeLog, uuid.h:
uuid: Change arguments to make it clear which argument is the source
and which is the destination.
e2image.c, mke2fs.c, mklost+found.c, tune2fs.c, util.c, uuidgen.c: Fix
gcc -Wall complaints, including one bug in tune2fs caused by a block
automatic shadowing version of the variable we really wanted to use,
which broke the logic testing to see if the filesystem was mounted.
ChangeLog, MCONFIG.in:
(gcc-wall-new): Added new target which forgoes the make clean so we
only check the newly modified .c files.
Makefile.in, tune2fs.c: Move e2label functionality into tune2fs, using
argv[0] as a dispatch. This allows e2label to be (more) safely used
on mounted filesystems.
get_device_by_label.h (get_volume_label_by_spec): Add function prototype.
get_device_by_label.c: Use string_copy() instead of strdup() for
portability's sake. Fix a few other gcc -Wall complaints.
fsck.h, fsck.c (string_copy): Export string_copy() extern.
badblocks.c: Fix various gcc -Wall complaints, including an incorrect
reference to sync in flush_bufs().
ChangeLog, configure, configure.in:
configure.in: Add checks for the header files sys/mkdev.h and
sys/sysmacros.h.
tune2fs.c (update_feature_set, add_journal): Moved to separate
functions. Added ability to add and remove the journal while the
filesystem is live. Added support for setting a time-based UUID.
Removed zero-initialized static variables.
mke2fs.c, util.c, util.h (strcasecmp, proceed_question,
check_plausibility, parse_journal_opts, check_mount): Moved functions
to util.c so they can be used by tune2fs.
mke2fs.c (main): Change ext2fs_add_journal_fs() to
ext2fs_add_journal_inode() to reflect function renaming.
tune2fs.c (main): Add support to allow HAS_JOURNAL flag to be cleared,
but only if the filesystem is unmounted or mounted read-only. Changed
struct ext2fs_sb to struct ext2_super, and cleaned up old code which
was needed for old versions of ext2_fs.h (not needed since we're using
our own version now).
fsck.c (check_all): Call interpet_device to resolve LABEL= and UUID=
right away so that the device_already_active() logic can do the right
thing. Also cleaned up the the root filesystem logic checking code;
fixed up a logic bug with the parallel_root option.
lsattr.c (list_attributes): Minor cleanup to smooth out logic flow.
Also removed static initialized variables to zero.
ChangeLog, lsattr.1.in:
lsattr.1.in: Add pointer to chattr man page for definition of the file
attributes.
chattr.c (decode_arg, get_flag): Use a table-driven method for
decoding the ext2 file flags character options. Add support for the
journaled data flag.
chattr.1.in: Document the -j/+j/=j flag.
base_device.c (base_device): Add support for DAC960 device names.
fsck.c (device_already_active): Handle the case where base_device
doesn't know how to interpret the device name, instead of core
dumping.
mke2fs.c (main, parse_journal_opts): Add support for creating V1
superblocks. We now pass in a journal_flags field to the journal
creation routines for this purpose.
mke2fs.c: Remove zero initializers to save a few bytes from the
executable image. (Are we excited yet?)
jfs_e2fsck.h, jfs_user.h: Replaces jfs_compat.h. The jfs.h file has
been moved to the include/linux directory.
journal.c, revoke.c, recovery.c: Updated files from Stephen to support
the V2 superblock and revoke processing. The journal.c and revoke.c
files are copies from the ext3 kernel source.
Makefile.in: Added revoke.c to the list of source/object files.
Makefile.in:
Fix up some mistakes in the source file list, and regenerate the
dependencies.
Update Makefile dependencies.
ChangeLog, jfs.h:
jfs.h: Remove excess #include of JFS_DEBUG. Not needed for e2fsprogs,
since we optioanlly define it in the configuration file system.
fsck.c (device_already_active): Change to use new version of
base_device() which now returns dynamically allocated memory.
base_device.c (base_device): New version moved from fsck.c which now
understands ugly devfs names. (Debian bug #65181)
base_device.tst: Test case for base_device.c
fsck.c (wait_one): When we let a new fsck take control of the console
to display the progress bar, set FLAG_PROGRESS to so that fsck knows
not to start new processes during an fsck pass with the progress
bar. (Should fix debian bug #65267)