Whamcloud - gitweb
resize2fs: use EXT2_FLAG_64BITS
[tools/e2fsprogs.git] / RELEASE-NOTES
index afc738f..a784bc3 100644 (file)
@@ -1,5 +1,105 @@
-E2fsprogs 1.42-WIP (October 16, 2011) -- c2c2b959bd87
-=======================================
+E2fsprogs 1.42.1 (February 17, 2012)
+===================================
+
+The mke2fs and e2fsck now use significantly less memory when creating
+or checking very large file systems.  This was enabled by adding
+extent-based bitmaps which are stored using a red-block tree, since
+block and inode allocations tend to be contiguous.
+
+The command mke2fs -S is used as a last ditch recovery command to
+write new superblock and block group descriptors, but _not_ to destroy
+the inode table in hopes of recovering from a badly corrupted file
+system.  So if the uninit_bg feature is enabled, mke2fs -S will now
+set the unused inodes count field to zero.  Otherwise, e2fsck -fy
+after using mke2fs -S would leave the file system completely empty.
+
+Since mke2fs recognizes mke3fs in argv[0] to mean "mkfs.ext3", also
+honor "mke4fs" to work the same as "mke2fs.ext4", since RHEL5 has
+installed an mke2fs binary using that name.
+
+The usage and help messages for the -G, -t and -T options in mke2fs
+have been fixed.
+
+If e2fsck needs to use the backup group descriptors, the
+ext2fs_open2() function clears the UNINIT bits to ensure all of the
+inodes in the file systems get scanned.  However, the code which reset
+the UNINIT flags did not also recalculate the checksum, which produced
+many spurious (and scary) e2fsck messages.  This has been fixed by
+resetting cheksums when the UNINIT bits are cleared.
+
+Relax a check in e2fsck which required that the block bitmap to be
+initialized when the inode bitmap is in use.  This will allow us to
+eventually eliminate code from the kernel which forcibly initialized
+the block bitmap when the inode bitmap is first used, requiring an
+extra journal credit and disk write.  (Addresses Google Bug: #5944440)
+    
+Make sure rdebugfs (which may be installed setuid or setgid disk) does
+not honor environment variables if euid != uid or egid != gid.
+
+Debugfs's ncheck command has been optimized and now is much more
+robust with faced with corrupted file systems.  The ncheck command
+also now has a -c option which will verify the file type information
+in the directory entry to see if matches the inode's mode bits.  This
+is extremely useful when trying to use debugsfs to determine which
+parts of the file system metadata can be trusted.
+
+E2image will try to use ftruncate64() to set the i_size for raw
+images, instead of writing a single null byte.  This avoid allocating
+an extra block to the raw image, for those file systems and/or
+operating systems that support this.  (Linux does.)  In addition, fix
+a logic bug that caused the file to not be properly extended if the
+size of the last hole was exactly an multiple of a megabyte.
+
+Fixed a bug in resize2fs where for 1k and 2k file systems, where
+s_first_data_block is non-zero, this wasn't taken into account when
+calculate the minimum file system size for use with the -M option.
+
+Fixed the badblocks program to honor the -s flag when in read-only -t
+mode.  (Addresses Debian Bug #646629)
+
+Update Czech, Dutch, French, Polish, and Sweedish translation from the
+Translation Project.
+
+Fixed various Debian Packaging issues so that dpkg-buildflags is used
+if present, which allows e2fsprogs to be built with security hardening
+flags.  (Addresses Debian Bugs: #654457)
+
+Programmer's Notes
+------------------
+
+Fix a bug in ext2fs_clear_generic_bmap() when used for 32-bit bitmaps.
+This was only an issue for programs compiled against e2fsprogs 1.41
+that manipulate bitmaps directly.  (Addresses Sourceforge Bugs:
+#3451486)
+
+The libext2fs library now uses sysconf() to fetch the page size, instead
+of the deprecated getpagesize().
+
+The ext2fs_get_pathname() function will return a partial path if an a
+directory in the path is not a directory, displaying it as an inode
+number in angle brackets instead of giving up and displaying an error.
+This is much more helpful when a user is trying to debug a corrupted
+file system.
+
+Codepoints for the RO_COMPAT_REPLICA feature has been reserved.
+
+Added a new library function, ext2fs_file_get_inode_num(), for use by
+fuse2fs.
+
+Fixed a bug in ext2fs_file_set_size2() so that when it is truncating a
+file, it actually works.
+
+The block iterator now properly honors the BLOCK_ABORT flag for
+extent-based flags.  Previously, it didn't, which generally made code
+be less efficient, but it could cause bugs in ext2fs_link(), for
+example, by causing it to insert multiple directory entries.
+
+Fixed an (harmless other than causing a compiler warning) use of an
+uninitialized variable in e2fsck's MMP code.
+
+
+E2fsprogs 1.42 (November 29, 2011)
+==================================
 
 This release of e2fsprogs has support for file systems > 16TB.  Online
 resize requires kernel support which will hopefully be in Linux
@@ -16,6 +116,10 @@ kernels.
 
 Added support for the Multi-Mount Protection (MMP) feature.
 
+E2fsck more efficiently uses scratch files for really big file
+systems.  (This is a feature that has to be turned on explicitly; see
+[scratch_files] in the e2fsck.conf man page.)
+
 Fix a bug in e2fsck where if the free blocks and inodes counts are
 incorrect, e2fsck would fix them without printing an error message.
 This would cause a "*** FILE SYSTEM WAS MODIFIED ***" message without
@@ -66,6 +170,12 @@ E2fsck will check for the bad block inode to make sure it looks sane
 before trusting it, to avoid causing more harm than good to the file
 system.
 
+E2fsck now returns additional status bits in its exit code if it
+aborts early in the e2fsck run.
+
+E2fsck now correctly calculates the maximum file size in the case of
+the huge_file file system feature enabled without extents.
+
 The mke2fs and e2fsck programs now tries to use the punch hole command
 as a "discard" when operating on normal files.
 
@@ -136,6 +246,18 @@ searched-for block as an extended attribute block.
 Debugfs now has a new "punch" command which remove blocks from the
 middle of an inode.
 
+Debugfs now has a new "e2freefrag" command which analyzes the free
+space fragmentation of the file system, using the same code as the
+e2freefrag program.
+
+Debugfs now has a "filefrag" command which displays information about
+a file's fragmentation.
+
+Add support to build a metadata-only, read-only, stripped-down version
+of debugfs called rdebugfs.
+
+Fixed a potential stack overrun bug in debugfs.
+
 The badblocks program now correctly recovers from I/O errors when
 direct I/O is being used.  The badblocks command now also supports a
 -B option which forces the use of buffered I/O, and the -v option will
@@ -170,6 +292,9 @@ physical extents for very large files.  (Addresses Debian Bug:
 Logsave's usage message has been fixed.  (Addresses Debian Bug:
 #619788)
 
+Avoid an infinite loop in ext2fs_find_block_device() if there are
+symlink loops in /dev caused by a buggy udev.
+
 Added a useful "fallocate" program to the contrib directory.
 
 Fixed an ABI compatibility problem in libext2fs which broke the dump
@@ -195,8 +320,8 @@ Fixed various Debian Packaging issues.  (Addresses Debian Bugs:
 Updated/clarified man pages.  (Addresses Debian Bugs: #639411,
 #642193, #634883)
 
-Programming notes
------------------
+Programmer's Notes
+------------------
 
 Initial support for quota as an integrated feature, where the quota
 files are hidden system files that are automatically maintained by
@@ -260,6 +385,8 @@ out of date.  This helps out Debian packaging.
 Allow ext2fs_get_memalign() to compile on systems that don't have
 posix_memalign().
 
+Fixed a namespace leak in libext2fs (tdb_null).
+
 
 E2fsprogs 1.41.14 (December 22, 2010)
 =====================================
@@ -2680,7 +2807,7 @@ loop forever on really big filesystems with a large inode count.
 Fix memory leak in ext2fs_write_new_inode()
 
 Add support for using a scratch files directory to reduce e2fsck's
-emory utilization on really big filesystems.  This uses the TDB
+memory utilization on really big filesystems.  This uses the TDB
 library.  See the [scratch_files] section of the e2fsck.conf man page
 for more details.