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.)
Theodore Ts'o [Sat, 9 Nov 2002 19:56:17 +0000 (14:56 -0500)]
unix_io.c (find_cached_block, reuse_cache, unix_read_blk,
unix_write_blk): Optimize routines so that we don't end up
searching the cache twice when a block isn't in the
cache. If reads are larger than READ_DIRECT_SIZE, don't
let them go through the cache.
Theodore Ts'o [Sat, 9 Nov 2002 15:33:49 +0000 (10:33 -0500)]
unix_io.c (find_cached_block): Fixed bug which caused some clean
blocks to be erroneously marked as dirty, so they would
get written back to the disk before they are evicted from
the cache. Harmless, but it slows down e2fsck
significantly.
Theodore Ts'o [Fri, 8 Nov 2002 20:55:17 +0000 (15:55 -0500)]
unix.c (main): Fix a bug where e2fsck could erroneously mark a
filesystem as being valid if it was being checked and it
is interrupted with a ^C. (Bug introduced in e2fsprogs
1.28.)
Theodore Ts'o [Fri, 8 Nov 2002 20:35:13 +0000 (15:35 -0500)]
unix.c (PRS), journal.c: Set the default level of journal
debugging to be 0, and allow the user to set the level of
journal debugging by using the E2FSCK_JBD_DEBUG
environment variable.
Theodore Ts'o [Fri, 8 Nov 2002 19:55:38 +0000 (14:55 -0500)]
Skip byteswap tests on --disable-swapfs
Disable certain tests that depend on the byteswapping functions
being present so that "make check" succeeds even if --disable-swapfs
is passed to the configure script.
Theodore Ts'o [Fri, 8 Nov 2002 19:10:15 +0000 (14:10 -0500)]
fs_ext2.c (fs_expand, fs_shrink),
fsimext2.c (fsim_mkfs, fsim_fsck): Inform the user if e2fsck,
mke2fs or resize2fs dies with a signal, or if the exit
with a non-zero exit status.
Theodore Ts'o [Fri, 8 Nov 2002 17:26:37 +0000 (12:26 -0500)]
fsimext2.c (set_mkfs_options): Synchronize with EVMS CVS rev
1.7 (2002/09/11): Add a hack to force mkfs won't a
blocksize equal to the hardsector size if it is larger
than 512 bytes.
Theodore Ts'o [Fri, 8 Nov 2002 16:54:29 +0000 (11:54 -0500)]
fs_ext2.c (fs_expand, fs_shrink): Synchronize with EVMS CVS rev
1.11 (2002/8/27). Read from the resize2fs output in
non-blocking mode, so the GUI continues to updates the window.
Theodore Ts'o [Fri, 8 Nov 2002 16:10:28 +0000 (11:10 -0500)]
Change e2fsck to force out changes to the backup copies of the
superblock and block group descriptors when important changes
are made to those data structures.
Theodore Ts'o [Fri, 8 Nov 2002 14:21:46 +0000 (09:21 -0500)]
closefs.c (write_bgdesc, ext2fs_flush): Fix bug in meta_bg
support when the MASTER_SB_ONLY flag is set. Some of
the descriptor blocks that should have been written out
were getting skipped.
Theodore Ts'o [Thu, 7 Nov 2002 21:16:55 +0000 (16:16 -0500)]
e2fsck.h, unix.c (main, check_mount): Fix e2fsck so that it
returns the appropriate exit code, so that the boot
scripts will be told that they need to automatically
reboot.
Theodore Ts'o [Fri, 1 Nov 2002 00:56:56 +0000 (19:56 -0500)]
resize2fs.c (inode_scan_and_fix, check_and_change_inodes): When
moving an inode, set the ctime field so that people using
dump/restore will backup the changed inode. Also update
the mtime and ctime of directories which get updated when
we need to move an inode.
Theodore Ts'o [Fri, 1 Nov 2002 00:39:03 +0000 (19:39 -0500)]
unix.c (usage), e2fsck.8.in: Add the -D option to the usage and
command synopsis. (Addresses Debian bug #167108)
(missed this file in the previous checkin)
Theodore Ts'o [Thu, 31 Oct 2002 23:38:55 +0000 (18:38 -0500)]
pass1.c (e2fsck_pass1): Check the superblock write time to see
whether or not we can safely do the LOW_DTIME checks.
(Addresses Sourceforge bug #620980)
Theodore Ts'o [Thu, 31 Oct 2002 20:17:16 +0000 (15:17 -0500)]
gen_uuid.c (get_random_bytes): Don't spin forever if read()
returns EINTR or EAGAIN, so that when /dev/random is
opened O_NONBLOCK, we don't end up spinning forever.
Theodore Ts'o [Thu, 31 Oct 2002 18:23:37 +0000 (13:23 -0500)]
ismounted.c (check_mntent, check_mntent_file): Add better
support for loopback-mounted filesystems. Check /etc/mtab
if /proc/mounts doesn't turn up any mount flags, since
/etc/mtab has the loopback image filename, instead of
/dev/loop0. Also, check based on st_dev and st_ino, so
that if a relative pathname or a pathnames using symbolic
links are used, we can detect the the filesystem correctly
in those cases. (Addresses Sourceforge bug #619119)
Theodore Ts'o [Thu, 31 Oct 2002 17:21:05 +0000 (12:21 -0500)]
flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds,
don't try the FDFLUSH ioctl that was required for floppies
with older kernels. This avoids needless whining from the
MD device driver. (Addresses Sourceforge bug #545832).
Theodore Ts'o [Thu, 31 Oct 2002 16:45:06 +0000 (11:45 -0500)]
openfs.c (ext2fs_open): Fix bug which caused us to pass the
wrong group_block to ext2fs_descriptor_block_loc if we're
using the backup superblock/block group descriptors.
(ext2fs_descriptor_block_loc): If we're using the backup
superblock descriptors, use the backup descriptor block in
the next block group.
Theodore Ts'o [Mon, 28 Oct 2002 21:52:12 +0000 (16:52 -0500)]
fsck.c (main): Fix bug reported by Gregory Mutt. Multiple
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.
Theodore Ts'o [Fri, 25 Oct 2002 21:29:55 +0000 (17:29 -0400)]
Add a new superblock field, s_mkfs_time, which indicates when
the filesystem was created. It is set via mke2fs, and printed
via list_super2() (which is called by dumpe2fs).
Also, list_super2() will now print "n/a" if the last mount time
(s_mtime) is zero.
Theodore Ts'o [Fri, 25 Oct 2002 21:07:11 +0000 (17:07 -0400)]
dumpe2fs.c (list_desc, main): Make dumpe2fs more robust so that
if there is an error reading the block/inode bitmaps, it
will still print out the contents of the block group
descriptors.
Theodore Ts'o [Thu, 3 Oct 2002 05:09:35 +0000 (01:09 -0400)]
Handle BAD_BLOCK_IN_INODE_TABLE even at the beginning of the
inode table, and shrink code by reorganizing the while loop so
to eliminate duplicate calls to ext2fs_get_next_inode().
Theodore Ts'o [Thu, 3 Oct 2002 02:07:17 +0000 (22:07 -0400)]
Fix endian problems in the htree code for e2fsck and debugfs.
When byte-swapping a filesystem on a PPC architecture, byte-swap
the bitmaps since the historical big-endian ext2 variant had
byte-swapped bitmaps, and the ext2fs library assumes this. Otherwise
the regression test suite will fail...