Add logsave, a new program which saves the output of a command
in a log file, even if the containing directory hasn't been
mounted yet (in which case the it saves the output in
memory until it can write out the logfile).
Remove EXT2_FEATURE_RO_COMPAT_BTREE_DIR mention of since it's not
actually used, and may confuse people who are looking for
EXT2_FEATURE_COMPAT_DIR_INDEX, which is in use.
Use the SS_READLINE_PATH environment variable to control the search
for a suitable readine library. As a default, try using libreadline,
libedit, and libeditline.
fsck.c (parse_fstab_line, interpret_type, fsck_device, ignore,
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.
E2fsck now updates the global free block and
inode counters from the block group specific counters
quietly. This is needed for an experimental patch which
eliminates locking the entire filesystem when allocating
blocks or inodes; if the filesystem is not unmounted
cleanly, the global counts may not be accurate.
Fixed possible hangs caused by bugs in calling waitpid, and not
setting the pipe to non-blocking mode. Also fixed a file descriptor
leak. Made sure all functions call log entry/exit functions.
gen_uuid.c (get_random_bytes): Always xor in a stream of bytes
from the system PRNG (i.e., random/srandom, seeded from
the time, pid, and uid) in case /dev/random isn't doing
the right thing on a particular system. It doesn't hurt,
and it can help, in the case of a buggy /dev/random.
Theodore Ts'o [Sat, 15 Mar 2003 18:30:07 +0000 (13:30 -0500)]
rehash.c (e2fsck_rehash_dir): If user specified the -n option,
skip trying to write out directory.
(e2fsck_rehash_directories): Fix the percentage
calculation in the progress bar.
Theodore Ts'o [Sat, 15 Mar 2003 03:19:10 +0000 (22:19 -0500)]
e2fsck/pass2.c (check_dir_block): Check for duplicate filenames within
a single directory block (because this is the easy case;
we don't currently check for duplicates that span
directory blocks, for now. Eventually for htree
directories we can do this by searching for all directory
blocks that have a hash overflow, and then searching the
adjacent blocks to find all other potential duplicates.)
Theodore Ts'o [Thu, 6 Mar 2003 17:58:33 +0000 (12:58 -0500)]
tune2fs.c (parse_tune2fs_options, parse_e2label_options): Allow
the device name to be specified using LABEL=xxx or
UUID=xxx, since we're including the blkid library anyway.
(Addresses Debian bugs #166048, #179671)
Theodore Ts'o [Sun, 2 Mar 2003 07:07:14 +0000 (02:07 -0500)]
Changes to create a subset distribution which consists only of the
et, ss, uuid, and blkid libraries. The configure script and top-level
makefile were changed to support working with a subset distribution.
Theodore Ts'o [Sun, 2 Mar 2003 03:57:31 +0000 (22:57 -0500)]
tag.c (blkid_set_tag): Fix bug; don't return an error when
deleting a tag by setting the value to NULL. This
caused a failed device verification to loop forever in
blkid_verify_devname().
Theodore Ts'o [Sat, 22 Feb 2003 22:15:20 +0000 (17:15 -0500)]
Internal changes to the blkid library:
1) Only one tag with a particular name can be attached to a device
at a time. This significantly simplifies the library, and was needed
to allow the cache file to be re-read and changes integrated into the
in-core version of the data structure in a simpler fashion than earlier
versions of the library.
2) To accomodate this, the ext2/ext3 filesystems are now always tagged
as "ext2" type filesystems. Ext3 filesystems are tagged with a
SEC_TYPE tag with the value ext3.
3) The new blkid_read_cache() function checks the mod time of the
cache file, and if the file has been changed since the last time the
cache file was read into memory, it is re-read. This function is now
called before probing all of the devices in the system or searching
all devices in the cache for a specific tag value.
4) After probing all devices, blkid_flush_cache() is called to write
out the cache file. This assures that all of the hard work involved
in doing a blkid_probe_all() is saved to disk.
Theodore Ts'o [Sat, 22 Feb 2003 18:19:53 +0000 (13:19 -0500)]
Add dynamic debugging capabilities to the blkid library,
controlled by the environment variable BLKID_DEBUG. The debugging
code is enabled by a new configuration option, --enable-blkid-debug.
Theodore Ts'o [Fri, 14 Feb 2003 06:31:45 +0000 (01:31 -0500)]
Add a priority label to the device structure, so we can give
preference to EVMS and LVM devices when searching for a device
matching a particular LABEL or UUID in the blkid library.
Theodore Ts'o [Mon, 27 Jan 2003 06:09:24 +0000 (01:09 -0500)]
Roto-till and clean up libblkid API.
read.c (parse_tag): Do not return that blkid_tag when parsing
the blkid.tag file.
resolve.c (blkid_get_token, blkid_get_tagname_devname): Fold in
code from removed functions
tag.c (blkid_create_tag): Don't return the newly tag strcture
any more, as it's not needed.
(blkid_find_tag_cache, blkid_get_tag_cache,
blkid_token_to_tag, blkid_find_tv_tags): Remove these
functions, as they are either only used once or have
interfaces that should be deprecated.
(blkid_find_tag_dev, blkid_find_head_cache): Replace use
of blkid_tag with one or two const char * type/value
arguments.
(blkid_find_dev_with_tag): Fold in code from removed functions
probe.h, probe.c: Use a more sophisticated set of byte-swapping
routines which are more compact and efficient. Drop
calculation of bid_free, since it's unnecessary. Avoid
save.c (blkid_save_cache): Set the permissions on the blkid
cache file to 644.
Theodore Ts'o [Sun, 26 Jan 2003 06:54:39 +0000 (01:54 -0500)]
Separate public and private interfaces into separate header files.
Start separating internal implementation details from the
publically exported interface of the blkid library.
Theodore Ts'o [Mon, 20 Jan 2003 02:01:22 +0000 (21:01 -0500)]
initialize.c (ext2fs_initialize): If the user specifies a really
large number of inodes, then reduce the number of blocks
per group until we find a workable set of filesystem
parameters.
ext2_err.et.in (EXT2_ET_TOO_MANY_INODES): Add new error code.
Theodore Ts'o [Wed, 13 Nov 2002 12:00:16 +0000 (07:00 -0500)]
Update to deal with the fact that the INDEX_FL code in the ext2 2.4
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.)