e2fsprogs-1.35-11.2. Fixed multiple command-line parsing
bugs so that backwards compatibility is maintained, and so
that certain command-line options wouldn't be ignored.
new semantics: WAIT_ALL vs. WAIT_ATLEAST_ONE. This fixes
a bug where when fsck is waiting for another partition on
the same spindle, it spins wasting a lot of CPU.
main): Don't evaluate the filesystem type when loading the
fstab file, since that might cause fsck to hang trying to
read from a floppy disk. (Addresses Debian bug #187812)
Add tmpfs and devpts to filesystems that should be
ignored, and add jfs, reseirfs, and xfs as filesystems
types where we should complain if we can't find the fsck
program for that filesystem type.
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.
-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!
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)
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.
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.
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".
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.
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
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.
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.
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.
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.
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)
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.
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.
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.
fsck.c (interpret_device): If there was an attempt to interpret a
device specification of the type "UUID=" or "LABEL=", and it fails,
check to see if /proc/partitions is readable. If not, print a warning
message about /proc perhaps not being mounted, and exit.
mke2fs.c (check_plausibility): Remove unneeded #include of linux/fs.h.
Add #define of MAJOR if necessary.
partinfo.c: Remove unneeded #include of linux/fs.h
Really fix the bug where "fsck -As" will actually allow interactive
fsck's. (For those people who like to do interactive fsck's in the
/etc/rc scripts!?!)
fsck.c (PRS, device_already_active): Add debugging hook; if the
environment variable FSCK_FORCE_ALL_PARALLEL is set, then force all
fsck runs to happen in parallel.
fsck.c (wait_one): Fix gcc warnings; add #include for ctype.h, add
const to char * variables, and use NOARGS to declare functions that
take no arguments. Also fix a memory leak in execute() where we
weren't freeing argv[] after forking the child process.
fsck.c (execute): Fix really stupid bug in the linked list management
which caused fsck in parallel mode to go into an infinite loop.
ChangeLog, mke2fs.c:
mke2fs.c (show_stats): Capitalized Hurd to make the GNU types happy.
ChangeLog, configure.in:
configure.in: Capitalized Hurd to make the GNU folks happy.
fsck.c (wait_one): If the fsck process just started, wait a second
before sending a SIGUSR1, to give it a chance to set the signal
handler; otherwise, fsck will die on an unhandled SIGUSR1.