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)
mke2fs.c(main): Expand the -j option so that it parses option=argument
style options, and add support for creating filesystems with external
journals.
mke2fs.8.in: Document new syntax for the -j option.
imager.c (ext2fs_image_{inode,super,bitmap}_{read,write}, ext2_fs.h,
Makefile.in: New file that has routines that save ext2fs metadata to a
file.
ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
e2image.h: New file which defines the file format for the ext2 image
file. (Saved copy of ext2 metadata to a file as a saving throw
against worst-case damage.)
ChangeLog, Makefile.in, e2image.c:
e2image.c, Makefile.in: New program which saves ext2 metadata to a
file for people who need a last-ditch saving throw.
mke2fs.c (PRS): Applied Andreas Dilger's patch to make the -r -s
handling a bit more sane. (Even though -s is deprecated at this
point.)
ChangeLog, expect.1:
f_journal: Update to take into account new printing by the e2fsck
program.
version.h:
Update for upcoming WIP release.
llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we don't
need to use llseek).
ChangeLog, fsck.c:
fsck.c (device_already_active): Add a special case check for MD
devices, so we don't try to check them in parallel with other devices.
mke2fs.c (zap_sector): Fix error message printed when zap_sector
fails.
dumpe2fs.c (list_desc): Fixed format string bug when printing the
inode table location in non-hex format.
get_device_by_label.c: Add call to ext2fs_find_block_device if we
can't find the device using the name given by /proc/partitions. (This
can happen if devfs is compiled into the kernel, but not mounted.)
dumpe2fs.c (usage): add fhx options to usage message, add -x option to
print out the per-group block numbers in hex, add line for location of
primary/backup superblock and group descriptors
mke2fs.c: rename max to group_blk_max avoid potential macro conflict
mke2fs.c (zap_sector): Change zap_bootsect to more general zap_sect.
(main): Clear the superblock when starting mke2fs, to avoid leaving
the filesystem in an inconsistent state.
Commit this file for future use; contains a configure.in script for when
libuuid gets separtead out into its own package.
libext2fs.texinfo:
Update version numbers for 1.19 release.
TODO:
Commit TODO list for 1.19 release.
README:
Update file for 1.19 release.
ChangeLog, e2fsprogs.spec:
e2fsprogs.spec: Merge in a few changes from the Red Hat 6.2 spec file,
now that we're using a modern rpm to build e2fsprogs. Also updated
version number to 1.19.
version.h:
Update version number for 1.19 release.
ChangeLog:
Check in changes for 1.19 release.
badblocks.8.in: Added text explaining that the -n and -w options are
mutually exclusive.
badblocks.c (usage): Fix usage message to make it clear that the block
count must be specified if the starting block is to be specified.
(The starting block should be a option, in the long run.)
badblocks.c (test_nd): Save and restore the currently_testing variable
before going into the write verification loop. This avoids a loop
termination problem if the last block on the disk is bad. Also, turn
off the SIGALRM signal while restoring blocks after the user types ^C.
The num_saved variable is now static so that it won't get clobbered by
a longjmp. buf_used and bb_count are no longer static, since they
aren't used by the cleanup routines anymore.
badblocks.c (main): Removed an unsued varaible (buf_size). Fixed bad
getopt argument that didn't allow the 'b' option to take an argument.
Added error checking when parsing the starting block number. Fixed
lint warning in fscanf format string.
fsck.c (execute, wait_one): Treat fsck.ext3 the same as fsck.ext2
(because they are the same) for the purposes of the progress bar
display logic.
ChangeLog, ls.c:
ls.c (list_super): Display the journal information fields in the
superblock if the filesystem has a journal.
tune2fs.8.in: Update manual page to document what happens if
max_mount_count is negative.
tune2fs.c (main): Allow setting the maximal count value to be
negative, since the kernel interprets that as forcing a check.
fsck.c (lookup, load_fs_info, check_all): Use lazy evaluation for
calling interpret_device(), since this requires root privileges if the
partitions need to be scanned. Otherwise, it's not possible to do
non-proot fsck's for removeable devices such as floppies if there are
any LABEL= or UUID= entries in /etc/fstab.
badblocks.c (check_mount, main): Check to see if the filesystem is
mounted before doing a read/write or non-destructive test. This can
be overriden using the new -f option.
badblocks.8.in: Added documentation for the -f option.
badblocks.8.in: Update manual page to reflect that the blocks-count
parameter is now optional. Also properly document the start-block
parameter.
badblocks.c (main): Allow the blocks-count parameter to be optional.
If it's not specified, use the size of the device as a default.
badblocks.c (test_nd): Significantly simplify the logic so that it's
more obviously what's going on. Fixed a few potential cases which
weren't handled correctly in the old, overly complicated logic.
(flush_bufs): Now doesn't take a second argument, and always forces a
sync; this is required before it's really safe to call BLKFLSBUF, at
least for some kernels.