-E2fsprogs 1.42-WIP (November 20, 2011) -- f62516f33b
-=======================================
+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
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
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.
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.
+e2fsprogs (1.42-1) unstable; urgency=low
+
+ * New upstream release
+ * Fixed hurd FTBFS (Closes: #649689)
+ * Optimized e2fsck speed on large file systems when using [scratch_files]
+ * Fixed e2fsck handling of blocks claimed by multiple inodes in
+ bigalloc file systems
+ * Fixed e2fsck's calculation of max file size for non-extent based
+ files when huge_file is enabled
+ * Update Czech and Swedish translations
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 29 Nov 2011 15:50:07 -0500
+
e2fsprogs (1.42~WIP-2011-11-20-1) unstable; urgency=low
* New upstream release
s;/usr/include/[^ ]* *;;g
s;/usr/lib/[^ ]* *;;g
s;/mit/cygnus[^ ]* *;;g
-s;../[^ ]*lib/blkid/blkid[^ ]* *;;g
-s;../[^ ]*lib/uuid/uuid.h[^ ]* *;;g
+s;\.\./[^ ]*lib/blkid/blkid[^ ]* *;;g
+s;\.\./[^ ]*lib/uuid/uuid.h[^ ]* *;;g
#
# Now insert a trailing newline...
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename libext2fs.info
-@settitle The EXT2FS Library (version 1.41.14)
+@settitle The EXT2FS Library (version 1.42)
@synindex tp fn
@comment %**end of header
@title The EXT2FS Library
@subtitle The EXT2FS Library
-@subtitle Version 1.41.14
-@subtitle December 2010
+@subtitle Version 1.42
+@subtitle November 2011
@author by Theodore Ts'o
@top The EXT2FS Library
-This manual documents the EXT2FS Library, version 1.41.14.
+This manual documents the EXT2FS Library, version 1.42.
@end ifinfo
Begin3
Title: EXT2 Filesystem utilities
-Version: 1.41.14
-Entered-date: 22Dec2010
+Version: 1.42
+Entered-date: 29Nov2011
Description: The filesystem utilities for the EXT2 filesystem, including
e2fsck, mke2fs, dumpe2fs, fsck, and others.
Keywords: utilities, fsck, filesystem, Ext2fs
Author: tytso@mit.edu (Theodore Tso)
Maintained-by: tytso@mit.edu (Theodore Tso)
Primary-site: download.sourceforge.net /pub/sourceforge/e2fsprogs
- 4408kB e2fsprogs-1.41.14.tar.gz
- 480kB e2fsprogs-libs-1.41.14.tar.gz
- 1kB e2fsprogs-1.41.14.lsm
+ 5580kB e2fsprogs-1.42.tar.gz
+ 504kB e2fsprogs-libs-1.42.tar.gz
+ 1kB e2fsprogs-1.42.lsm
Alternate-site:
Platforms: linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x
Copying-policy: GPL-2/LGPL-2
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-cache.o: $(srcdir)/cache.c $(srcdir)/list.h
-dev.o: $(srcdir)/dev.c $(srcdir)/list.h
-devname.o: $(srcdir)/devname.c $(srcdir)/list.h
-devno.o: $(srcdir)/devno.c $(srcdir)/list.h
-getsize.o: $(srcdir)/getsize.c $(srcdir)/list.h
-llseek.o: $(srcdir)/llseek.c $(srcdir)/list.h
-probe.o: $(srcdir)/probe.c $(srcdir)/list.h $(srcdir)/probe.h
-read.o: $(srcdir)/read.c $(srcdir)/list.h
-resolve.o: $(srcdir)/resolve.c $(srcdir)/list.h
-save.o: $(srcdir)/save.c $(srcdir)/list.h
-tag.o: $(srcdir)/tag.c $(srcdir)/list.h
-version.o: $(srcdir)/version.c $(top_srcdir)/version.h
+cache.o: $(srcdir)/cache.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+dev.o: $(srcdir)/dev.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+devname.o: $(srcdir)/devname.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+devno.o: $(srcdir)/devno.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+getsize.o: $(srcdir)/getsize.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+llseek.o: $(srcdir)/llseek.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+probe.o: $(srcdir)/probe.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h \
+ $(srcdir)/probe.h
+read.o: $(srcdir)/read.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+resolve.o: $(srcdir)/resolve.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+save.o: $(srcdir)/save.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+tag.o: $(srcdir)/tag.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/blkidP.h $(srcdir)/list.h
+version.o: $(srcdir)/version.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/version.h
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
$(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+ $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/ext2fsP.h
flushb.o: $(srcdir)/flushb.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
$(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+ $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/ext2fsP.h
native.o: $(srcdir)/native.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-clear.o: $(srcdir)/clear.c $(srcdir)/uuidP.h
-compare.o: $(srcdir)/compare.c $(srcdir)/uuidP.h
-copy.o: $(srcdir)/copy.c $(srcdir)/uuidP.h
-gen_uuid.o: $(srcdir)/gen_uuid.c $(srcdir)/uuidP.h $(srcdir)/uuidd.h
-isnull.o: $(srcdir)/isnull.c $(srcdir)/uuidP.h
-pack.o: $(srcdir)/pack.c $(srcdir)/uuidP.h
-parse.o: $(srcdir)/parse.c $(srcdir)/uuidP.h
-unpack.o: $(srcdir)/unpack.c $(srcdir)/uuidP.h
-unparse.o: $(srcdir)/unparse.c $(srcdir)/uuidP.h
-uuid_time.o: $(srcdir)/uuid_time.c $(srcdir)/uuidP.h
+clear.o: $(srcdir)/clear.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+compare.o: $(srcdir)/compare.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+copy.o: $(srcdir)/copy.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+gen_uuid.o: $(srcdir)/gen_uuid.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h $(srcdir)/uuidd.h
+isnull.o: $(srcdir)/isnull.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+pack.o: $(srcdir)/pack.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+parse.o: $(srcdir)/parse.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+unpack.o: $(srcdir)/unpack.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+unparse.o: $(srcdir)/unparse.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
+uuid_time.o: $(srcdir)/uuid_time.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/uuidP.h
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42-WIP\n"
+"Project-Id-Version: e2fsprogs 1.42\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-20 21:24-0500\n"
+"POT-Creation-Date: 2011-11-29 16:03-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "multiply claimed inode map"
msgstr ""
-#: e2fsck/pass1b.c:599 e2fsck/pass1b.c:712
+#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr ""
-#: e2fsck/pass1b.c:825
+#: e2fsck/pass1b.c:818
msgid "returned from clone_file_block"
msgstr ""
-#: e2fsck/pass1b.c:847
+#: e2fsck/pass1b.c:840
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr ""
-#: e2fsck/pass1b.c:859
+#: e2fsck/pass1b.c:852
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr ""
--- /dev/null
+#!/bin/sh
+OPTS="-O bigalloc -C 8192"
+SIZE=4096
+IMG=/tmp/foo.img
+TMP=$(mktemp)
+SIZE_A=15000
+SIZE_B=5000
+SIZE_C=20000
+
+DEBUGFS=./debugfs/debugfs
+MKE2FS=./misc/mke2fs
+FSCK=./e2fsck/e2fsck
+
+dd if=/dev/zero of=$IMG bs=1k count=$SIZE
+echo $MKE2FS -F -t ext4 -L test $OPTS test.img $SIZE
+$MKE2FS -F -t ext4 -L test $OPTS $IMG $SIZE
+dd if=/dev/zero of=$TMP bs=$SIZE_A count=1 >& /dev/null
+echo Writing $SIZE_A bytes to a
+$DEBUGFS -w -R "write $TMP a" $IMG
+BLKS=$(./debugfs/debugfs -R "blocks a" $IMG)
+cp /dev/null $TMP
+echo "Releasing blocks $BLKS"
+for i in $BLKS ; do echo "freeb $i" >> $TMP; done
+$DEBUGFS -w $IMG < $TMP >& /dev/null
+
+echo Writing $SIZE_B bytes to b
+dd if=/dev/zero of=$TMP bs=$SIZE_B count=1 >& /dev/null
+$DEBUGFS -w -R "write $TMP b" $IMG
+if [ -n "$SIZE_C" ]; then
+ BLKS=$(./debugfs/debugfs -R "blocks b" $IMG)
+ cp /dev/null $TMP
+ echo "Releasing blocks $BLKS"
+ for i in $BLKS ; do echo "freeb $i" >> $TMP; done
+ $DEBUGFS -w $IMG < $TMP >& /dev/null
+
+ echo Writing $SIZE_C bytes to c
+ dd if=/dev/zero of=$TMP bs=$SIZE_C count=1 >& /dev/null
+ $DEBUGFS -w -R "write $TMP c" $IMG
+fi
+echo "set_inode_field a mtime 201107040000" > $TMP
+echo "set_inode_field b mtime 201107050000" >> $TMP
+if [ -n "$SIZE_C" ]; then
+ echo "set_inode_field c mtime 201107060000" >> $TMP
+fi
+$DEBUGFS -w $IMG < $TMP >& /dev/null
+
+$FSCK -fy $IMG
+rm $TMP
+
* file may be redistributed under the GNU Public License v2.
*/
-#define E2FSPROGS_VERSION "1.42-WIP"
-#define E2FSPROGS_DATE "20-Nov-2011"
+#define E2FSPROGS_VERSION "1.42"
+#define E2FSPROGS_DATE "29-Nov-2011"