Theodore Ts'o [Fri, 27 Feb 2004 02:06:58 +0000 (21:06 -0500)]
badblocks.c (pattern_fill): Fix bug accidentally added when
fixing up gcc -Wall nits. badblocks -t random was not
getting handled properly because ~0 needed to be cast to
an unsigned long instead of an unsigned char. (Addresses
Debian bug #234828)
Theodore Ts'o [Tue, 24 Feb 2004 03:30:54 +0000 (22:30 -0500)]
debugfs.c (internal_dump_inode): Display the major/minor device
numbers for block/character devices.
(do_mknod): Add support for new-style device numbers (where
the major or minor number is greater than 255 and less
than 65535). (Addresses Sourceforge bug #865289)
Theodore Ts'o [Tue, 24 Feb 2004 02:26:23 +0000 (21:26 -0500)]
Makefile.in (PROFILED_LIBS, PROFILED_DEPLIBS): Fix reference to
libblkid so that the build will work with --enable-profile
(Addresses Sourceforge bug #811408)
Theodore Ts'o [Sun, 22 Feb 2004 02:02:15 +0000 (21:02 -0500)]
fsck.c (execute): Use '&&' instead of '&'. (It didn't cause a
problem because we got lucky, but let's do things right.
Fix from Thomas Woerner at Red Hat.)
Theodore Ts'o [Sun, 22 Feb 2004 01:53:03 +0000 (20:53 -0500)]
e2fsck.c (e2fsck_run): Clear the SETJMP_OK flag when returning
so we don't double longjump into an invalid stack frame.
(Thanks to Matthias Andree for providing this fix.)
Theodore Ts'o [Sun, 1 Feb 2004 02:24:51 +0000 (21:24 -0500)]
problem.c (fix_problem): Don't call print_e2fsck_message if the
message is empty; otherwise, the NLS substitution will
print the .po header, which is Just Wrong.
Theodore Ts'o [Sun, 1 Feb 2004 02:16:35 +0000 (21:16 -0500)]
fgetflags.c, fgetversion.c, fsetflags.c, fsetversion.c: Apply
patch from Brian Bergstrand to support ext2_ioctl() in
Darwin. This is implemented via the fsctl system call.
Theodore Ts'o [Fri, 30 Jan 2004 07:07:13 +0000 (02:07 -0500)]
gen_uuid.c (uuid_generate_time): Fix bug pointed out by Ralf
S. Engelshall; when generating a random ethernet address
because one is not available, set the least significant
bit of the first byte of the MAC address, since it is the
first bit to be transmitted, and is therefore the
multicast bit.
Theodore Ts'o [Fri, 30 Jan 2004 06:48:06 +0000 (01:48 -0500)]
Fix a byte swap bugs, including one which caused e2fsck to
incorrectly treat as valid symlinks created with SE Linux
(Debian bug #228723) as well as failing the f_journal test case on
big endian systems due to the backup journal blocks not being swapped.
Theodore Ts'o [Fri, 26 Dec 2003 19:03:20 +0000 (14:03 -0500)]
chattr.1.in: Update text indicating the 'c', 's', and 'u'
attributes are not currently supported to remove any
mention of a specific kernel version. (Addresses Debian
bug #214920)
Theodore Ts'o [Thu, 25 Dec 2003 19:28:55 +0000 (14:28 -0500)]
Try to use the DEBUGFS_PAGER environment
variable first, and then fall back to the PAGER
environment variable. Finally, search for an appropriate
pager executable.
Theodore Ts'o [Fri, 12 Dec 2003 08:00:56 +0000 (03:00 -0500)]
Fix bug in e2fsck: When reconnecting a directory, we may
need to create a lost+found directory. This may
invalidate our pointer to the directory information, so we
must look it up again after calling
e2fsck_reconnect_file(). (Addresses Debian bug #219640).
Theodore Ts'o [Thu, 11 Dec 2003 16:54:48 +0000 (11:54 -0500)]
debugfs.c (do_write, do_mkdir): If the directory is full,
automatically call ext2fs_expand_dir() and then retry to
add the link to the directory as a convenience to the
user. (Addresses Debian Bug: #217892)
(do_mknod): Clean up expand_dir error handling.
Theodore Ts'o [Thu, 11 Dec 2003 06:00:21 +0000 (01:00 -0500)]
e2fsck.h (E2F_FLAG_RESTARTED): Assign a unique flag bitfield to
E2F_FLAG_RESTARTED. This fixes a bug where if the user
specifies an alternate superblock, and the journal needs
to be replayed, e2fsck would erroneously assume that
journal had been run already without clearing the
NEEDS_RECOVERY flag, and bomb out with an error.
Theodore Ts'o [Sun, 7 Dec 2003 18:16:25 +0000 (13:16 -0500)]
util.c (open_pager): Search for the pager to use, starting with
'pager', and then falling back to 'less' and then 'more'.
(Addresses Debian Bug: #221977)
Theodore Ts'o [Tue, 2 Dec 2003 12:56:42 +0000 (07:56 -0500)]
When testing a disk using e2fsck -c, use the list
of new bad blocks to replace the current list of bad
blocks. This way "e2fsck -c" can be used to recover from
a corrupted bad block inode.
Theodore Ts'o [Sat, 22 Nov 2003 18:54:38 +0000 (13:54 -0500)]
com_err.h: Retore the type of n_msgs in the error_table
structure to "int" from "unsigned int" fix a core dumping
bug in the com_right() function. (Addresses Debian bug
#213450)
Theodore Ts'o [Fri, 21 Nov 2003 16:02:22 +0000 (11:02 -0500)]
In e2fsck, given an extra grace period before actually forcing
a filesystem check if a laptop system reports it is running on
battery. This way the laptop will be biased to waiting until
it is on AC power before doing a filesystem check. (Addresses
Debian bug #205177)
Theodore Ts'o [Fri, 21 Nov 2003 15:41:58 +0000 (10:41 -0500)]
pass1.c (e2fsck_pass1), problem.h (PR_1_BB_FS_BLOCK),
problem.c (PR_1_BB_FS_BLOCK, PR_1_BBINODE_BAD_METABLOCK_PROMPT):
Fix up the handling of corrupted indirect blocks in the
bad block. We now correctly handle the case where there
is an overlap between a block group descriptor or
a superblock and a bad block indirect block. In the case
where the indirect block is corrupted, we now suggest
"e2fsck -c".
Theodore Ts'o [Fri, 21 Nov 2003 14:10:29 +0000 (09:10 -0500)]
Check the returned name from blkid_get_devname in tune2fs and
e2fsck, and print an error if the requested LABEL/UUID does
not exist (previously, we core dumped!)
Theodore Ts'o [Fri, 21 Nov 2003 14:02:21 +0000 (09:02 -0500)]
Centeralize calculation of which blocks are reserved/used for
the superblock and block group descriptors into two functions:
ext2fs_reserve_super_and_bgd, found in lib/ext2fs/alloc_sb.c, and
ext2fs_super_and_bgd_lock, found in lib/ext2fs/close.c.
Change e2fsck/pass1.c (mark_table_blocks), lib/ext2fs/closefs.c
(ext2fs_flush), lib/ext2fs/initialize.c (ext2fs_initialize),
and misc/dumpe2fs.c (list_desc) to use these functions.
e2fsck/ChangeLog
pass1.c (mark_table_blocks): Use the new function
ext2fs_reserve_super_and_bgd to calculate the blocks to be
reserved.
lib/ext2fs/ChangeLog
closefs.c (ext2fs_super_and_bgd_loc): New function which
centralizes the calculation of the superblock and block
group descriptors.
(ext2fs_flush): Use ext2fs_super_and_bgd_lock to figure
out where to write the superblock and block group
descriptors.
alloc_sb.c (ext2fs_reserve_super_and_bgd): New function which
reserves space in the block bitmap using
ext2fs_super_and_bgd_loc.
initialize.c (ext2fs_initialize): Use
ext2fs_reserve_super_and_bgd to initialize the block bitmap.
misc/ChangeLog
dumpe2fs.c (list_desc): Use ext2fs_super_and_bgd_loc to
determine the locations of the superblock and block group
descriptors.
Mke2fs has been modified to honor the MKE2FS_SKIP_PROGRESS,
MKE2FS_DEVICE_SECTSIZE, and MKE2FS_SKIP_CHECK_MSG in order
facilitate the regression testing.
mke2fs.c (set_fs_defaults): Fix bug which caused -T largefile or
-T largefile4 to core dump due to a division by zero
error. (Addressed Debian bug #207082)
Theodore Ts'o [Mon, 25 Aug 2003 01:36:38 +0000 (21:36 -0400)]
util.c (get_backup_sb): Check to make sure the context is passed
in non-NULL before trying to dereference it. Otherwise we
might core dump when called to expand %S in a problem
description.
Theodore Ts'o [Thu, 21 Aug 2003 05:53:07 +0000 (01:53 -0400)]
Fix misc. debian packaging problems.
* Move the initrd script from /etc/mkinitrd/scripts to
/usr/share/initrd-tools/scripts so that mkinitrd will not remove
the file when it is uninstalled. (Addresses Debian bug #204019)
* Remove unneeded files in debian directory: blkid-dev.substvars and
e2fsprogs-bf.lintian-overrides. (Addresses Debian bug #203914)
* Support "noopt" in DEB_BUILD_OPTIONS instead of "debug".
(Addresses Debian bug #203914)
Theodore Ts'o [Thu, 21 Aug 2003 04:40:26 +0000 (00:40 -0400)]
Add support for backing up the journal inode location in the
superblock. E2fsck will automatically save the journal information
in the superblock if it is not there already, and will use it if the
journal inode appears to be corrupted. ext2fs_add_journal_inode()
will also save the backup information, so that new filesystems
created by mke2fs and filesystems that have journals added via
tune2fs will also have journal location written to the superblock as
well. Debugfs's logdump command has been enhanced so that it can
use the journal information in the superblock.
The debugfs man page has been improved to more fully describe the
logdump command.
Added two new functions, ext2fs_file_open2() and
ext2fs_inode_io_intern2() which take a pointer to an inode structure;
this is needed so that e2fsck and debugfs can synthesize a
fake journal inode and use it to access the journal.
Theodore Ts'o [Tue, 19 Aug 2003 14:08:34 +0000 (10:08 -0400)]
e2fsck.h, unix.c (PRS, e2fsck_clear_progbar,
e2fsck_simple_progress): Don't print the ^A and ^B
characters which bracket the progress bar when the e2fsck
program is talking directly to a tty, but only when it is
being piped to another program. (Addresses Debian bug
#204137)
unix.c: Move some initialized variables to the BSS segment to
shrink the size of the e2fsck executable.
Theodore Ts'o [Fri, 1 Aug 2003 13:41:07 +0000 (09:41 -0400)]
ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem()
all now take a 'void *' instead of a 'void **' in order to
avoid pointer aliasing problems with GCC 3.x.