<H2>Release notes for the e2fsprogs package</H2>
<UL>
+<LI><A HREF="#1.47.3">E2fsprogs 1.47.3 (July 8, 2025)</A>
<LI><A HREF="#1.47.2">E2fsprogs 1.47.2 (January 1, 2025)</A>
<LI><A HREF="#1.47.1">E2fsprogs 1.47.1 (May 20, 2024)</A>
<LI><A HREF="#1.47.0">E2fsprogs 1.47.0 (February 5, 2023)</A>
<LI><A HREF="#1.02">E2fsprogs 1.02 (January 16, 1996)</A>
</UL>
-<H2><A NAME="1.47.1">E2fsprogs 1.47.2 (January 1, 2025)</A></H2>
+<H2><A NAME="1.47.3">E2fsprogs 1.47.3 (July 8, 2025)</A></H2>
+
+<h3>UI and Features</h3>
+
+<P>Mke2fs -d can now copy the fs-verity metadata and chattr flags into
+newly created file system.</P>
+
+<P>Add fuse2fs's support for the XATTR_CREATE and XATTR_REPLACE flags in
+setxattr.</P>
+
+<P>Add support for FALLOC_FL_ZERO_RANGE in fuse2fs.</P>
+
+<P>Add support to fuse2fs for the setting file attributes via fsxattr,
+including support for nanosecond timestamps.</P>
+
+<P>Add support to fuse2fs to set newer chattr flags.</P>
+
+<P>Add a lockfile command-line option to fuse2fs which is useful for
+scripts that need to know when fuse2fs is done modifying the file system
+after it is unmounted.</P>
+
+<P>Add mke2fs.conf knobs to control whether the RAID stripe or stride sizes
+from the storage device information depending on whether the storage
+device is a rotational or non-rotational device. By default don't set
+the RAID stripe size for non-rotational devices.</P>
+
+<P>E2scrub no longer runs fstrim by default, since util-linux ships with a
+fstrim.timer systemd file which will run fstrim on all mounted file
+systems. This can be re-enabled in /etc/e2scrub.conf if for some reason
+it is desireable to run the fstrim out of e2scrub.</P>
+
+<h3>Fixes</h3>
+
+<P>Fix "e2fsck -E unshare_blocks" to clear the shared_blocks flag when
+there are no shared blocks to clear</P>
+
+<P>Fix "e2fsck -n" to not abort when it trips across an EA inode which
+is not referenced by any inodes in the file system.</P>
+
+<P>Fix debugfs's dump and rdump commands to avoid looping forever when
+it runs across an I/O error or corupt filesystem metadata.</P>
+
+<P>Fix debugfs's dirsearch command on big-endian systems.</P>
+
+<P>Fix many fuse2fs bugs found by running fstests, including fixing
+support for O_APPEND, O_TRUNC, POSIX ACLs, and the immutable flag. Also
+fix fuse2fs to correctly remove ea_inodes if the last reference to an
+ea_inode is removed when an inode is removed, and to update timestmps
+correctly after the mkdir(2) and symlink(2) operations.</P>
+
+<P>Fix fuse2fs's error code handling for fallocate(), truncate() and
+removexattr().</P>
+
+<P>Fix an integer overflow bug which resulted in fuse2fs failing to delete
+very large files. (Addresses Debian Bug: #1106241)</P>
+
+<P>Fix a (hard to reproduce) extent tree corruption bug which could be
+triggered by resize2fs or fuse2fs if the extent tree was especially
+complex</P>
+
+<P>Improve fuse2fs's handling of corrupted file systems.</P>
+
+<P>Fuse2fs doesn't support renameat2()'s RENAME_EXCHANGE or RENAME_WHITEOUT
+flags, so return ENOSYS instead of incorrectly handling the renameat2()
+request.</P>
+
+<P>Fuse2fs will avoid clearning the setgid bit in op_chmod if the file's
+group ownership is one of the calling process's group list (instead of
+just the primary group id).</P>
+
+<P>Change fuse2fs to align with kernel's behaviors by (a) clearing
+post-EOF on truncation, (b) validating FITRIM's parameters consistently
+with how the kernel does things, (c) how the "ro" mount option will
+replay the journal, (d) only supporting the xattr namespaces supported
+by the kernel, (e) clamping timestamps to the minimum and maximum value
+supported by the on-disk format, and (e) optionally delegating access
+control decisions to the kernel.</P>
+
+<P>Prevent fuse2fs from mounting file systems which have features that
+fuse2fs can't deal with.</P>
+
+<P>Fix error path handling in fuse2fs when servicing an op_create request.</P>
+
+<P>Fix spurious warnings from fuse2fs while servicing an op_fallocate request.</P>
+
+<P>Fix fuse2fs to correctly translate system errors from libext2fs to the
+negative error codes expected by the FUSE kernel driver. There aren't
+many; but in some cases, when the file system is corrupted, libext2fs
+will return EOVERFLOW and we sent a nonsense error to the kernel.</P>
+
+<P>Optimize ext2fs_extent_set_bmap() to avoid fragmenting the extent tree.
+This fixes a problem where resize2fs is trying to relocate all of the
+blocks in a file leading to the extent tree doubling in size, and
+potentially leading to a corrupted extent tree.</P>
+
+<P>Fix a bounding error in ext2fs_fallocate() which could cause it to
+allocate far more blocks than was requested. This caused a failure in
+fuse2fs while formatting a loopback file system stored in a large sparse
+file.</P>
+
+<P>Fix potential livelock bug in the unix_io manager.</P>
+
+<P>Fix invaidation support in the unix_io manager.</P>
+
+<P>Various man page cleanups.</P>
+
+<h3>Performance, Internal Implementation, Development Support etc.</h3>
+
+<P>Improve performance in e2fsck when replaying a journal with a large
+number of revoke blocks (which can be the case on Lustre servers).</P>
+
+<P>Improve tune2fs's performance by avoiding scanning the file system to
+update quota inodes in cases when it's not necessary.</P>
+
+<P>Improve fuse2fs's performance by returning inode and type information in
+readdir() and to use the actal inode numbers instead of asking fuse
+to make up inode numbers.</P>
+
+<P>Fix various Coverity and compiler warnings.</P>
+
+<P>Add two new flags for ext2fs_link(). The EXT2FS_LINK_APPEND flag
+causes ext2fs_link() to only search the last block in the directory,
+which imrpoves the scalability of creating a large number of files in a
+directory. The EXT2FS_LINK_EXPAND() causes ext2fs_link() to
+automatically expand the directory if there is no free space found to
+create the requested directory entry.</P>
+
+<P>Add a new function, ext2fs_mkdir2() which allows the flags parameter
+to be passed to ext2fs_link(), allows the chattr flags to be set in the
+newly created directory, and return the inode number for the newly
+created directory.</P>
+
+<P>Add new functions ext2fs_log2_u{32,64}() and ext2fs_log10_u{32,64}() so
+we don't have multiple copies of these functions in various e2fsprogs
+programs.</P>
+
+<P>Improve debugging and logging in fuse2fs.</P>
+
+<P>General code cleaups in fuse2fs.</P>
+
+<P>Improve fuse2fs's performance by allowing a larger cache in unix_io and
+using O_DIRECT to read and write the block device.</P>
+
+<P>Fixed Windows portability problems intrduced in 1.47.2.</P>
+
+<P>Fix various FreeBSD compile warnings and test issues.</P>
+
+<P>Fix MacOS build issues when compiling with libarchive and FUSE support.</P>
+
+<P>To avoid warning messages on newer versions of GNU grep, use "grep -E"
+instead of "egrep" when possible.</P>
+
+<P>Fix test failure for m_rootdir_acl when the build tree is hosted on
+btrfs. (This was caused by btrfs returning extended attributes relating
+to Posix ACL's in a different order than ext4 or xfs.)</P>
+
+<P>Fixed potention races in the Makefiles which could show up when using
+"make -j install".</P>
+
+<P>Fixed build failures when libarchive is not available.</P>
+
+<P>Fixed various Debian packaging issues. (Addresses Debian Bugs:
+#1106799, #1107595)</P>
+
+<P>Update Czech, Chinese, Dutch, French, Malay, Portuguese, Polish,
+Romainian, Serbian, Spanish, Swedish, and Ukrainian translations.</P>
+
+
+<H2><A NAME="1.47.2">E2fsprogs 1.47.2 (January 1, 2025)</A></H2>
<H3>UI and Features</H3>
<h3>UI and Features</h3>
-<p>The defaults for mke2fs now call for 256 byte inodes for all file
+<P>The defaults for mke2fs now call for 256 byte inodes for all file
systems (with the exception of file systems for the GNU Hurd, which only
supports 128 byte inodes). Creating non-Hurd file systems with 128 byte
inodes will trigger a warning message to make sure users are aware of
-the potential problems of using small/legacy inode sizes.</p>
+the potential problems of using small/legacy inode sizes.</P>
-<p>The bigalloc feature is now considered supported if the cluster size no
+<P>The bigalloc feature is now considered supported if the cluster size no
more than 16 times the block size. So the mke2fs program has been
-changes to only warn if the cluster size is larger than that.</p>
+changes to only warn if the cluster size is larger than that.</P>
<h3>Fixes</h3>
-<p>E2fsck now checks to make sure directory entries do not reference
-internal quota inodes.</p>
+<P>E2fsck now checks to make sure directory entries do not reference
+internal quota inodes.</P>
-<p>E2image now includes the quota inodes when creating file system image,
-since they are part of the file system metadata.</p>
+<P>E2image now includes the quota inodes when creating file system image,
+since they are part of the file system metadata.</P>
-<p>E2fsck now properly accounts the quota usage of the project quota file.</p>
+<P>E2fsck now properly accounts the quota usage of the project quota file.</P>
-<p>Fix a regression introduced in 1.64.3 where attempting to create a file
+<P>Fix a regression introduced in 1.64.3 where attempting to create a file
system image using mke2fs into a non-existent file would fail.
-(Addresses Debian Bug: #992094)</p>
+(Addresses Debian Bug: #992094)</P>
-<p>Fix mke2fs to correctly create Posix ACL's on big-endian systems when
-copying files from a directory hierarchy.</p>
+<P>Fix mke2fs to correctly create Posix ACL's on big-endian systems when
+copying files from a directory hierarchy.</P>
-<p>Updated and clarified the resize2fs man pages. (Addresses Debian Bug:
-#979411)</p>
+<P>Updated and clarified the resize2fs man pages. (Addresses Debian Bug:
+#979411)</P>
<h3>Performance, Internal Implementation, Development Support etc.</h3>
-<p>Improve various regression tests to be more portable and to reflect the
-new default inode size of 256 byte inodes, even for small file systems.</p>
+<P>Improve various regression tests to be more portable and to reflect the
+new default inode size of 256 byte inodes, even for small file systems.</P>
-<p>Fixed a GNU Hurd portability problem which was causing tests to fail.</p>
+<P>Fixed a GNU Hurd portability problem which was causing tests to fail.</P>
-<p>Fixed a test failure in f_baddotdir on big-endian systems. This wasn't
+<P>Fixed a test failure in f_baddotdir on big-endian systems. This wasn't
necessarily a bug per se in e2fsck, but rather e2fsck having different
-behaviour on big-endian systems. (Addresses Debian Bug: #991922)</p>
+behaviour on big-endian systems. (Addresses Debian Bug: #991922)</P>
-<p>Use WantedBy=multi-user.target in e2scrub_reap.service. (Addresses
-Debian Bug: #991349)</p>
+<P>Use WantedBy=multi-user.target in e2scrub_reap.service. (Addresses
+Debian Bug: #991349)</P>
-<p>Synchronize e2fsck/recovery.c with the kernel's fs/jbd2/recovery.c</p>
+<P>Synchronize e2fsck/recovery.c with the kernel's fs/jbd2/recovery.c</P>
-<p>Fix various Coverity and compiler warnings.</p>
+<P>Fix various Coverity and compiler warnings.</P>
-<p>Fix various error pathes to make sure we don't leak resources or
-potentially use or try to free uninitialized pointers.</p>
+<P>Fix various error pathes to make sure we don't leak resources or
+potentially use or try to free uninitialized pointers.</P>
-<p>Added a setup-schroot command for use on Debian porter boxes.</p>
+<P>Added a setup-schroot command for use on Debian porter boxes.</P>
-<p>Updated config.guess and config.sub with newer versions from the FSF.</p>
+<P>Updated config.guess and config.sub with newer versions from the FSF.</P>
-<p>Update Czech, Dutch, French, Polish, Portuguese, and Swedish translations.</p>
+<P>Update Czech, Dutch, French, Polish, Portuguese, and Swedish translations.</P>
<H2><A NAME="1.46.3">E2fsprogs 1.46.3 (July 27, 2021)</A></H2>
<H2><A NAME="1.36">E2fsprogs 1.36 (February 5, 2005)</A></H2>
-<p>All of the patches that were applied to Fedora Core 3's
+<P>All of the patches that were applied to Fedora Core 3's
e2fsprogs-1.35-11.2 have been integrated, although sometimes with a
lot of bug fixes first. Users of Fedora Core 3 are strongly
-encouraged to upgrade to e2fsprogs 1.36 as soon as possible.</p>
+encouraged to upgrade to e2fsprogs 1.36 as soon as possible.</P>
-<p>Add support for filesystem with the online resizing via resize inode
+<P>Add support for filesystem with the online resizing via resize inode
feature. Fixed numerous bugs from the Fedora patches. The Fedora
patches also didn't bother to do any consistency checking on the
resize inode, or add any tests to the regression test suite. The "-R
resize=4g" option to mke2fs was a no-op in the Fedora patches, despite
being listed in mke2fs's usage message. All of these shortcomings
-have been corrected.</p>
+have been corrected.</P>
-<p>E2fsck can also also fix filesystems trashed by Fedora's resize2fs
+<P>E2fsck can also also fix filesystems trashed by Fedora's resize2fs
program. In order to do this, the user must run the commands:
<blockquote>
debugfs -w /dev/hdXXX -R "features ^resize_inode"</br>
e2fsck -f /dev/hdXXX
</blockquote>
Optionally, the ext2prepare command can be used to re-enable online
-resizing after the filesystem has been fixed.</p>
+resizing after the filesystem has been fixed.</P>
-<p>The fsck program will now accept an optional filedescriptor argument
+<P>The fsck program will now accept an optional filedescriptor argument
to the -C option. (The Fedora version of this patch would sometimes
cause fsck to ignore a parameter on fsck's command line in some rare
-cases, sigh.)</p>
+cases, sigh.)</P>
-<p>Make sure e2fsprogs doesn't write garbage into the reserved portion of
-large inodes.</p>
+<P>Make sure e2fsprogs doesn't write garbage into the reserved portion of
+large inodes.</P>
-<p>Make sure resize2fs releases the blocks belonging to the old inode
+<P>Make sure resize2fs releases the blocks belonging to the old inode
table blocks when moving the inode table. (Addresses Debian Bug:
-<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=290894" TARGET="_blank">#290894</A>)</p>
+<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=290894" TARGET="_blank">#290894</A>)</P>
-<p>Skip the r_resize_inode test if resize2fs is not compiled (due to
-configure --disable-resizer)</p>
+<P>Skip the r_resize_inode test if resize2fs is not compiled (due to
+configure --disable-resizer)</P>
-<p>E2fsck now checks the summary filesystem accounting information, and
+<P>E2fsck now checks the summary filesystem accounting information, and
if any of the information is obviously wrong, it will force a full
filesystem check. (Addresses Debian Bug
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=291571" TARGET="_blank">#291571</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=291571" TARGET="_blank">#291571</A>)</P>
-<p>Fix e2fsck to not complain when the resize_inode feature is enabled,
+<P>Fix e2fsck to not complain when the resize_inode feature is enabled,
s_reserved_gdt_blocks is zero, and there is no DIND block allocated in
-the resize inode.</p>
+the resize inode.</P>
-<p>Fix e2fsck to note delete symlinks that contain an extended attribute
+<P>Fix e2fsck to note delete symlinks that contain an extended attribute
after the ext_attr feature flag has been cleared. (Addresses Red Hat
-Bugzilla <A HREF="https://bugzilla.redhat.com/show_bug.cgi?id=146284" TARGET="_blank">#146284</A>).</p>
+Bugzilla <A HREF="https://bugzilla.redhat.com/show_bug.cgi?id=146284" TARGET="_blank">#146284</A>).</P>
-<p>Add new utility program, copy_sparse.c, which is very useful
-for dealing with large sparse files (such as e2image files).</p>
+<P>Add new utility program, copy_sparse.c, which is very useful
+for dealing with large sparse files (such as e2image files).</P>
-<p>Add support for jnl_blocks[] for debugfs's set_super_value.</p>
+<P>Add support for jnl_blocks[] for debugfs's set_super_value.</P>
-<p>Fix filefrag so that it works correctly with sparse files.</p>
+<P>Fix filefrag so that it works correctly with sparse files.</P>
-<p>Filefrag -v will print first and last blocks.</p>
+<P>Filefrag -v will print first and last blocks.</P>
-<p>Add interpretation of OS Creator values for FreeBSD and Lites in mke2fs
-and dumpe2fs.</p>
+<P>Add interpretation of OS Creator values for FreeBSD and Lites in mke2fs
+and dumpe2fs.</P>
-<p>Add mke2fs support so that it can support filesystems larger than 4TB
+<P>Add mke2fs support so that it can support filesystems larger than 4TB
automatically, by retrying with a 4k blocksize if the device size is
too big to be expressed using a 1k blocksize. (Addresses Sourceforge
-bug #1106631)</p>
+bug #1106631)</P>
-<p>Change blkid to test for NTFS first because Windows sometimes doesn't
+<P>Change blkid to test for NTFS first because Windows sometimes doesn't
clear enough of the partition to confuse the probing routines into
thinking the old filesystem type is still valid. (Addresses Debian
-Bug <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=291990" TARGET="_blank">#291990</A>)</p>
+Bug <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=291990" TARGET="_blank">#291990</A>)</P>
-<p>Add support for swap partition label and uuid's in the blkid library.</p>
+<P>Add support for swap partition label and uuid's in the blkid library.</P>
-<p>Add support to the blkid library to recognize Oracle ASM volumes.</p>
+<P>Add support to the blkid library to recognize Oracle ASM volumes.</P>
-<p>Make blkid -t display all devices that match the specified criteria,
+<P>Make blkid -t display all devices that match the specified criteria,
not just the first one, and work more consistently when the blkid
cache file is not available or set to /dev/null. (Addresses Debian
Bug <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=290530"
TARGET="_blank">#290530</A> and
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=292425" TARGET="_blank">#292425</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=292425" TARGET="_blank">#292425</A>)</P>
-<p>Badblocks will now correctly display block numbers greater than
-999,999,999 in its progress display.</p>
+<P>Badblocks will now correctly display block numbers greater than
+999,999,999 in its progress display.</P>
-<p>The tune2fs program will not allow the user from setting a ridiculous
+<P>The tune2fs program will not allow the user from setting a ridiculous
number of reserved blocks which would cause e2fsck to assume the
superblock was corrupt. E2fsck's standards for what is a ridiculous
number of reserved block has also been relaxed to 50% of the blocks in
-the filesystem.</p>
+the filesystem.</P>
-<p>The blkid library will return vfat in preference to msdos, and ext3 in
+<P>The blkid library will return vfat in preference to msdos, and ext3 in
preference to ext2 (if the journalling flag is set) so that mount will
do the right thing. (Addresses Debian bug
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=287455" TARGET="_blank">#287455</A>)</p>
- <p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=287455" TARGET="_blank">#287455</A>)</P>
+ <P>
Mke2fs will now use the -E option for extended options; the old -R
(raid options) option is still accepted for backwards compatibility.
Fix a double-free problem in resize2fs. (Red Hat Bugzilla
-<A HREF="https://bugzilla.redhat.com/show_bug.cgi?id=132707" TARGET="_blank">#132707</A>)</p>
+<A HREF="https://bugzilla.redhat.com/show_bug.cgi?id=132707" TARGET="_blank">#132707</A>)</P>
-<p>Mke2fs will now accept a size in megabytes, gigabytes, and other units
+<P>Mke2fs will now accept a size in megabytes, gigabytes, and other units
(via "32m" or "4g" on the command line) if the user finds this more
-convenient than specifying a block count.</p>
+convenient than specifying a block count.</P>
-<p>Fix an obscure, hard-to find bug in "e2fsck -S" caused by an inode
-cache coherency problem.</p>
+<P>Fix an obscure, hard-to find bug in "e2fsck -S" caused by an inode
+cache coherency problem.</P>
-<p>Debugfs now supports a new command, set_inode_field, which allows a
+<P>Debugfs now supports a new command, set_inode_field, which allows a
user to manually set a specific inode field more conveniently, as well
-as set entries in the indirect block map.</p>
+as set entries in the indirect block map.</P>
-<p>Debugfs's set_super_value command has been enhanced so that the user
+<P>Debugfs's set_super_value command has been enhanced so that the user
can set most superblock fields, including the date/time fields and
-some of the more newly added superblock fields.</p>
+some of the more newly added superblock fields.</P>
-<p>E2fsprogs programs now accept an offset to be passed to the file
-specifiers, via the syntax: "/tmp/test.img?offset=1024".</p>
+<P>E2fsprogs programs now accept an offset to be passed to the file
+specifiers, via the syntax: "/tmp/test.img?offset=1024".</P>
-<p>E2fsprogs programs will now accept blocksizes up to 65536; kernel
+<P>E2fsprogs programs will now accept blocksizes up to 65536; kernel
support on the x86 doesn't exist for now, but it can be useful on
other architectures with page sizes greater than 4k. There are 2.6
kernel patches out there which enable this, but they are of this
-writing still experimental.</p>
+writing still experimental.</P>
-<p>The e2image command now takes the -s option which will scramble
-directory entries for raw image files.</p>
+<P>The e2image command now takes the -s option which will scramble
+directory entries for raw image files.</P>
-<p>Fix a file descriptor leak in the filefrag program.</p>
+<P>Fix a file descriptor leak in the filefrag program.</P>
-<p>Make sure e2fsck doesn't crash when /proc/acpi/ac_adapter is not
-present.</p>
+<P>Make sure e2fsck doesn't crash when /proc/acpi/ac_adapter is not
+present.</P>
-<p>Fix bug in debugfs where kill_file would lead to errors when deleting
-devices and symlinks. (Sourceforge Bugs #954741 and #957244)</p>
+<P>Fix bug in debugfs where kill_file would lead to errors when deleting
+devices and symlinks. (Sourceforge Bugs #954741 and #957244)</P>
-<p>Fix bug in the blkid library when detecting the ocfs1 filesystem </p>
+<P>Fix bug in the blkid library when detecting the ocfs1 filesystem </P>
-<p>Remove obsolete EVMS 1.x and a.out DLL support.</p>
+<P>Remove obsolete EVMS 1.x and a.out DLL support.</P>
-<p>E2fsck will attempt to recover from a journal containing illegal blocks.</p>
+<P>E2fsck will attempt to recover from a journal containing illegal blocks.</P>
-<p>Fixed two potential ordering constraint problems in e2fsck which might
+<P>Fixed two potential ordering constraint problems in e2fsck which might
cause the filesystem to be corrupted if e2fsck is interrupted during a
(extremely narrow) race window. Thanks to Junfeng Yang from the
-Stanford Metacompilation group for pointing this out.</p>
+Stanford Metacompilation group for pointing this out.</P>
-<p>Fixed bug in e2fsck where it would not accurately detect whether or
+<P>Fixed bug in e2fsck where it would not accurately detect whether or
not the system is running on adaptor if the ACPI device representing
the AC adapter didn't correspond to the what was used on IBM
-Thinkpads.</p>
+Thinkpads.</P>
-<p>Change e2fsck to accept directories greater than 32MB.</p>
+<P>Change e2fsck to accept directories greater than 32MB.</P>
-<p>Fix e2fsck so that a checkinterval of zero disables a time-based check
-of the filesystem.</p>
+<P>Fix e2fsck so that a checkinterval of zero disables a time-based check
+of the filesystem.</P>
-<p>Debugfs will check the DEBUGFS_PAGER environment variable in preference
+<P>Debugfs will check the DEBUGFS_PAGER environment variable in preference
to the PAGER environment variable. (Addresses Debian Bug
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239547" TARGET="_blank">#239547</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239547" TARGET="_blank">#239547</A>)</P>
-<p>Tune2fs will not mark rewrite the superblock if the feature bitmasks
-are not modified.</p>
+<P>Tune2fs will not mark rewrite the superblock if the feature bitmasks
+are not modified.</P>
-<p>The debugfs program will set the filetype information when creating a
-link.</p>
+<P>The debugfs program will set the filetype information when creating a
+link.</P>
-<p>Add debugfs -d option to use a separate source of data blocks when
-reading from an e2image file.</p>
+<P>Add debugfs -d option to use a separate source of data blocks when
+reading from an e2image file.</P>
-<p>Add e2image -I option which allows the e2image metadata to be
-installed into a filesystem.</p>
+<P>Add e2image -I option which allows the e2image metadata to be
+installed into a filesystem.</P>
-<p>Fixed bug in the badblocks program which caused "done" to always
+<P>Fixed bug in the badblocks program which caused "done" to always
appear in English even when a translation was available. (Addresses
Debian Bug
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=252836" TARGET="_blank">#252836</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=252836" TARGET="_blank">#252836</A>)</P>
-<p>The blkid program has a new option -o which controls the output format
+<P>The blkid program has a new option -o which controls the output format
of the blkid program; this is makes blkid more convenient to use in
-shell scripts.</p>
+shell scripts.</P>
-<p>Fix a minor bug in uuid library, which was not using the full 14 bits
-of clock sequence when generating UUID's.</p>
+<P>Fix a minor bug in uuid library, which was not using the full 14 bits
+of clock sequence when generating UUID's.</P>
-<p>Fix a Y8.8888K problem in the uuid library.</p>
+<P>Fix a Y8.8888K problem in the uuid library.</P>
-<p>Logsave now creates a new session id for itself to avoid getting
-killed by init when transitioning between init levels.</p>
+<P>Logsave now creates a new session id for itself to avoid getting
+killed by init when transitioning between init levels.</P>
-<p>Change the licensing of the UUID library to be the 3-clause BSD-style
-license; this allows Apple to use the uuid library in Darwin.</p>
+<P>Change the licensing of the UUID library to be the 3-clause BSD-style
+license; this allows Apple to use the uuid library in Darwin.</P>
-<p>Add ocfs and ocfs2 probe support into the blkid library.</p>
+<P>Add ocfs and ocfs2 probe support into the blkid library.</P>
-<p>Fix a memory and file descriptor leak in the blkid library.</p>
+<P>Fix a memory and file descriptor leak in the blkid library.</P>
-<p>The blkid library will revalidate the device if the system time is
+<P>The blkid library will revalidate the device if the system time is
earlier than last verification time of the device, since that
-indicates that the system time is probably not trustworthy.</p>
+indicates that the system time is probably not trustworthy.</P>
-<p>The blkid library will override the default location of the blkid.tab
-file by the BLKID_FILE environment variable, if it is available.</p>
+<P>The blkid library will override the default location of the blkid.tab
+file by the BLKID_FILE environment variable, if it is available.</P>
-<p>Change the getsize functions to use the BLKGETSIZE64 ioctl on Linux 2.6.</p>
+<P>Change the getsize functions to use the BLKGETSIZE64 ioctl on Linux 2.6.</P>
-<p>Add various portability fixes for lame new versions of glibc, Darwin
+<P>Add various portability fixes for lame new versions of glibc, Darwin
and GNU/KFreeBSD, as well as removing XSI:ism's. (Addresses Debian
Bugs <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239934"
TARGET="_blank">#239934</A>,
TARGET="_blank">#269044</A>,
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=255589"
TARGET="_blank">#255589</A>,
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=289133" TARGET="_blank">#289133</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=289133" TARGET="_blank">#289133</A>)</P>
-<p>Add support for Windows 9x/NT under Cygwin.</p>
+<P>Add support for Windows 9x/NT under Cygwin.</P>
-<p>Updated and clarified various man pages. (Addresses Debian Bugs
+<P>Updated and clarified various man pages. (Addresses Debian Bugs
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=236383"
TARGET="_blank">#236383</A>,
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=241940"
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256760"
TARGET="_blank">#256760</A>,
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=273679"
- TARGET="_blank">#273679</A>)</p>
+ TARGET="_blank">#273679</A>)</P>
-<p>Updated and fixed translations. (Addresses Debian bugs
+<P>Updated and fixed translations. (Addresses Debian bugs
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=244105"
TARGET="_blank">#244105</A>,
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=262836" TARGET="_blank">#262836</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=262836" TARGET="_blank">#262836</A>)</P>
-<p>Update the rpm spec files so that it works better with Fedora core 2
-and RH9.</p>
+<P>Update the rpm spec files so that it works better with Fedora core 2
+and RH9.</P>
-<p>Fixed various Debian packaging issues (see debian/changelog). In
+<P>Fixed various Debian packaging issues (see debian/changelog). In
particular, fixed the Debian initrd scripts. (Addresses Debian bugs
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=241183"
TARGET="_blank">#241183</A>,
TARGET="_blank">#248050</A>,
<A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=253595"
TARGET="_blank">#253595</A>,
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247775" TARGET="_blank">#247775</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247775" TARGET="_blank">#247775</A>)</P>
<h3>Programmer's notes: </h3>
-<p>Fixed various gcc -Wall warnings.</p>
+<P>Fixed various gcc -Wall warnings.</P>
-<p>The uuid library now has new functions uuid_unparse_upper() and
+<P>The uuid library now has new functions uuid_unparse_upper() and
uuid_unparse_lower() which forces the case of the hex digits to be
-upper case, or lower case.</p>
+upper case, or lower case.</P>
-<p>The build process has been sped up by enhancing the subst program
+<P>The build process has been sped up by enhancing the subst program
to update the modtime on the generated files even when the generated
-file hasn't changed.</p>
+file hasn't changed.</P>
-<p>The uuid library now uses C99 stdint.h types instead of custom types.</p>
+<P>The uuid library now uses C99 stdint.h types instead of custom types.</P>
-<p>Updated config.guess and config.sub with newer versions from the FSF.</p>
+<P>Updated config.guess and config.sub with newer versions from the FSF.</P>
-<p>Removed out of date .cvsignore files from the source distribution.</p>
+<P>Removed out of date .cvsignore files from the source distribution.</P>
-<p>The ext2fs_unlink() function will return an error if both the name and
+<P>The ext2fs_unlink() function will return an error if both the name and
inode number are unspecified, to avoid doing something surprising
(such as unconditionally deleting the first directory entry).
Directory entries are now deleted by coalescing them with the previous
directory entry if possible, to avoid directory fragmentation. This
is not an issue with the e2fsprogs suite, but may be a problem for
-some of the users of libext2fs, such as e2tools.</p>
+some of the users of libext2fs, such as e2tools.</P>
-<p>Add support for version numbers of the form "1.36-rc1".</p>
+<P>Add support for version numbers of the form "1.36-rc1".</P>
-<p>Fix build of mke2fs.static.</p>
+<P>Fix build of mke2fs.static.</P>
-<p>Add basic ext2fs library support for large (EA in inode) inodes.</p>
+<P>Add basic ext2fs library support for large (EA in inode) inodes.</P>
-<p>The test_io mechanism can now abort after n reads or writes to a
+<P>The test_io mechanism can now abort after n reads or writes to a
particular block. The block is specified by TEST_IO_BLOCK environment
variable, and the read/write count by the TEST_IO_READ_ABORT and
TEST_IO_WRITE_ABORT environment variables. The block data is now only
-dumped if the 0x10 bit is set in TEST_IO_FLAGS.</p>
+dumped if the 0x10 bit is set in TEST_IO_FLAGS.</P>
-<p>UUID_DEFINE() in the uuid library now creates a static variable, with
+<P>UUID_DEFINE() in the uuid library now creates a static variable, with
__attribute__ ((unused)) if we are using GCC, so that UUID_DEFINE can
-be used in header files.</p>
+be used in header files.</P>
-<p>Add support for the install-strip and install-shlibs-strip targets, as
+<P>Add support for the install-strip and install-shlibs-strip targets, as
suggested by the GNU coding guidelines. "make install" no longer
-strips the binaries which are installed.</p>
+strips the binaries which are installed.</P>
-<p>Remove support for the --enable-old-bitops configure option which was
-only for very old sparc systems.</p>
+<P>Remove support for the --enable-old-bitops configure option which was
+only for very old sparc systems.</P>
-<p>Remove support for --enable-clear-htree; this was only needed during
-the early development of the htree patch.</p>
+<P>Remove support for --enable-clear-htree; this was only needed during
+the early development of the htree patch.</P>
-<p>Use Linux-kernel-style makefile output so it is easier to see compiler
-warnings.</p>
+<P>Use Linux-kernel-style makefile output so it is easier to see compiler
+warnings.</P>
-<p>Update gettext files to version 0.14.1.</p>
+<P>Update gettext files to version 0.14.1.</P>
-<p>Update to use autoconf 2.5x.</p>
+<P>Update to use autoconf 2.5x.</P>
-<p>Improved support for compiling e2fsprogs under dietlibc.</p>
+<P>Improved support for compiling e2fsprogs under dietlibc.</P>
-<p>Make e2fsprogs portable to Solaris and FreeBSD systems.</p>
+<P>Make e2fsprogs portable to Solaris and FreeBSD systems.</P>
-<p>Add blkid_verify(), blkid_get_library_version(), and
-blkid_parse_version_string() functions to the blkid library.</p>
+<P>Add blkid_verify(), blkid_get_library_version(), and
+blkid_parse_version_string() functions to the blkid library.</P>
-<p>Add pkg-config files for e2fsprogs's libraries.</p>
+<P>Add pkg-config files for e2fsprogs's libraries.</P>
-<p>Fix "make uninstall" to so that it removes everything that is installed.</p>
+<P>Fix "make uninstall" to so that it removes everything that is installed.</P>
-<p>Add a configure --enable-maintainer-mode option which enables the
+<P>Add a configure --enable-maintainer-mode option which enables the
makefile rules to rebuild the configure script from configure.in, and
-to rebuild the .gmo files in po directory.</p>
+to rebuild the .gmo files in po directory.</P>
-<p>Drop the sparc assembly bitwise operations; it's less efficient
+<P>Drop the sparc assembly bitwise operations; it's less efficient
than the GCC 3.4 compile code and triggers compiler warnings on
sparc64. Thanks to Matthias Andree for his analysis and suggestions.
(Addresses Debian Bug
- <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=232326" TARGET="_blank">#232326</A>)</p>
+ <A HREF="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=232326" TARGET="_blank">#232326</A>)</P>
<H2><A NAME="1.35">E2fsprogs 1.35 (February 28, 2004)</A></H2>
<LI> Removed redundant code
<LI> Fixed comments in code
<LI> Removed no-longer needed argsused #pragma.
-</UL></p>
+</UL></P>
<H2><A NAME="1.20">E2fsprogs 1.20 (May 20, 2001)</A></H2>