From 499d5ec5582209279bb0cf86672770d77b047871 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 29 Nov 2011 16:06:58 -0500 Subject: [PATCH] Update Release Notes, Changelogs, version.h, etc. for 1.42 release Also fixed depfix.sed Signed-off-by: "Theodore Ts'o" --- RELEASE-NOTES | 13 ++++++++--- debian/changelog | 13 +++++++++++ depfix.sed | 4 ++-- doc/libext2fs.texinfo | 8 +++---- e2fsprogs.lsm | 10 ++++----- lib/blkid/Makefile.in | 37 ++++++++++++++++++++----------- lib/ext2fs/Makefile.in | 4 ++-- lib/uuid/Makefile.in | 30 +++++++++++++++++--------- po/e2fsprogs.pot | 12 +++++------ tests/scripts/mkdup | 49 ++++++++++++++++++++++++++++++++++++++++++ version.h | 4 ++-- 11 files changed, 138 insertions(+), 46 deletions(-) create mode 100755 tests/scripts/mkdup diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 98436bed..c028ac4a 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,5 +1,5 @@ -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 @@ -16,6 +16,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 @@ -69,6 +73,9 @@ 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. @@ -2700,7 +2707,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. diff --git a/debian/changelog b/debian/changelog index ba7f2d42..236038de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +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 Tue, 29 Nov 2011 15:50:07 -0500 + e2fsprogs (1.42~WIP-2011-11-20-1) unstable; urgency=low * New upstream release diff --git a/depfix.sed b/depfix.sed index c73a8938..582d79fd 100644 --- a/depfix.sed +++ b/depfix.sed @@ -25,8 +25,8 @@ s/ */ /g 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... diff --git a/doc/libext2fs.texinfo b/doc/libext2fs.texinfo index d607396b..0b0d4bf5 100644 --- a/doc/libext2fs.texinfo +++ b/doc/libext2fs.texinfo @@ -1,7 +1,7 @@ \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 @@ -60,8 +60,8 @@ by the author. @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 @@ -102,7 +102,7 @@ by the Foundation. @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 diff --git a/e2fsprogs.lsm b/e2fsprogs.lsm index acf2867a..43a650fb 100644 --- a/e2fsprogs.lsm +++ b/e2fsprogs.lsm @@ -1,16 +1,16 @@ 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 diff --git a/lib/blkid/Makefile.in b/lib/blkid/Makefile.in index e89318e1..f23a1376 100644 --- a/lib/blkid/Makefile.in +++ b/lib/blkid/Makefile.in @@ -195,15 +195,28 @@ $(OBJS): subdirs $(HFILES_IN) # 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 diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in index d9b04f9e..3d080953 100644 --- a/lib/ext2fs/Makefile.in +++ b/lib/ext2fs/Makefile.in @@ -617,7 +617,7 @@ finddev.o: $(srcdir)/finddev.c $(top_builddir)/lib/config.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 \ @@ -763,7 +763,7 @@ namei.o: $(srcdir)/namei.c $(top_builddir)/lib/config.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 \ diff --git a/lib/uuid/Makefile.in b/lib/uuid/Makefile.in index 141b8dca..b85c7203 100644 --- a/lib/uuid/Makefile.in +++ b/lib/uuid/Makefile.in @@ -192,13 +192,23 @@ $(OBJS): subdirs uuid.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 diff --git a/po/e2fsprogs.pot b/po/e2fsprogs.pot index 6b2726fd..4dff4e01 100644 --- a/po/e2fsprogs.pot +++ b/po/e2fsprogs.pot @@ -66,9 +66,9 @@ #, 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 \n" "Language-Team: LANGUAGE \n" @@ -468,21 +468,21 @@ msgstr "" 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 "" diff --git a/tests/scripts/mkdup b/tests/scripts/mkdup new file mode 100755 index 00000000..c48a9f05 --- /dev/null +++ b/tests/scripts/mkdup @@ -0,0 +1,49 @@ +#!/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 + diff --git a/version.h b/version.h index 161fd2c3..10c4d84b 100644 --- a/version.h +++ b/version.h @@ -7,5 +7,5 @@ * 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"