Rev openSUSE:Factory/41 Md5 3bcc8e74559fb988bcccb19f2424773b 2009-02-06 15:34:27 unknown None

This commit is contained in:
OBS User unknown 2009-02-06 15:34:27 +00:00 committed by Git OBS Bridge
parent 2284a3b0dc
commit 9dd3225c98
12 changed files with 242 additions and 560 deletions

View File

@ -1,32 +0,0 @@
commit 52771ab59145d66b50399a8b953b8181cb2d5b04
Author: Theodore Ts'o <tytso@mit.edu>
Date: Tue Sep 9 15:02:24 2008 -0400
e2fsck: Fix e2fsck automatic blocksize detetion
This fixes a regression that was introduced in commit dcc91e10 (it
showed up first in e2fsprogs 1.40.7). Since we weren't freeing the
filesystem handle, ext2fs_open2() was returning EBUSY, and so this
caused a failure in the code that would automatically determine the
filesystem block size when only the superblock number was specified by
the user.
This was discussed in http://ubuntuforums.org/showthread.php?t=789323,
and Matthias Bannach pointed this out to me, for which I am very
grateful.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 94938a4..64faebe 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -971,6 +971,8 @@ restart:
int blocksize;
for (blocksize = EXT2_MIN_BLOCK_SIZE;
blocksize <= EXT2_MAX_BLOCK_SIZE; blocksize *= 2) {
+ if (fs)
+ ext2fs_free(fs);
retval = ext2fs_open2(ctx->filesystem_name,
ctx->io_options, flags,
ctx->superblock, blocksize,

View File

@ -1,22 +0,0 @@
Index: e2fsprogs-1.41.1/lib/ext2fs/alloc.c
===================================================================
--- e2fsprogs-1.41.1.orig/lib/ext2fs/alloc.c 2008-08-28 16:39:14.000000000 +0200
+++ e2fsprogs-1.41.1/lib/ext2fs/alloc.c 2008-10-28 11:28:34.000000000 +0100
@@ -29,7 +29,7 @@
/*
* Check for uninit block bitmaps and deal with them appropriately
*/
-static check_block_uninit(ext2_filsys fs, ext2fs_block_bitmap map,
+static void check_block_uninit(ext2_filsys fs, ext2fs_block_bitmap map,
dgrp_t group)
{
int i;
@@ -75,7 +75,7 @@ static check_block_uninit(ext2_filsys fs
/*
* Check for uninit inode bitmaps and deal with them appropriately
*/
-static check_inode_uninit(ext2_filsys fs, ext2fs_inode_bitmap map,
+static void check_inode_uninit(ext2_filsys fs, ext2fs_inode_bitmap map,
dgrp_t group)
{
int i;

View File

@ -1,188 +0,0 @@
commit 55da987650b36a1b910a5968f7d83a190827f8bb
Author: Theodore Ts'o <tytso@mit.edu>
Date: Tue Sep 2 23:12:38 2008 -0400
Improve ELF shared library handling
Pass in -rpath-link option to the linker so that blkid will build
correctly on systems that don't have libcom_err.so.2 installed.
Fix debugfs to only try to link with -ldl when building without shared
libraries; with ELF shared libraries, the library which requires -ldl
(libss.so) can required the library dependency itself.
Fix how we build tune2fs.static so that we use @LDFLAG_STATIC@, via
$(LDFLAGS_STATIC), instead of hard-coding the use of -static.
Addresses-Sourceforge-Bug: #2088537
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
diff --git a/MCONFIG.in b/MCONFIG.in
index 554b5b5..2f32b92 100644
--- a/MCONFIG.in
+++ b/MCONFIG.in
@@ -41,7 +41,8 @@ INTL_FLAGS = @INTL_FLAGS@
ALL_CFLAGS = $(CPPFLAGS) $(DEFS) $(USE_WFLAGS) $(CFLAGS) $(XTRA_CFLAGS) \
$(INTL_FLAGS) $(LINUX_INCLUDE)
LDFLAGS = @LDFLAGS@
-ALL_LDFLAGS = $(LDFLAGS)
+ALL_LDFLAGS = $(LDFLAGS) @LDFLAG_DYNAMIC@
+LDFLAGS_STATIC = $(LDFLAGS) @LDFLAG_STATIC@
BUILD_CFLAGS = @BUILD_CFLAGS@
BUILD_LDFLAGS = @BUILD_LDFLAGS@
RM = @RM@
@@ -69,7 +70,7 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
# Library definitions
#
LIB = $(top_builddir)/lib
-LIBSS = $(LIB)/libss@LIB_EXT@ @DLOPEN_LIB@
+LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@
LIBE2P = $(LIB)/libe2p@LIB_EXT@
LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
diff --git a/configure b/configure
index 5cf203e..0e3bdbe 100755
--- a/configure
+++ b/configure
@@ -684,6 +684,8 @@ CHECKER_CMT
LIB_EXT
STATIC_LIB_EXT
PROFILED_LIB_EXT
+LDFLAG_DYNAMIC
+PRIVATE_LIBS_CMT
TEST_IO_CMT
DEBUGFS_CMT
IMAGER_CMT
@@ -3842,6 +3844,8 @@ fi
E2_PKG_CONFIG_STATIC=--static
+LDFLAG_DYNAMIC=
+PRIVATE_LIBS_CMT=
# Check whether --enable-elf-shlibs was given.
if test "${enable_elf_shlibs+set}" = set; then
enableval=$enable_elf_shlibs; if test "$enableval" = "no"
@@ -3861,6 +3865,8 @@ else
esac
BINARY_TYPE=elfbin
LIB_EXT=.so
+ PRIVATE_LIBS_CMT=#
+ LDFLAG_DYNAMIC='-Wl,-rpath-link,$(top_builddir)/lib'
{ echo "$as_me:$LINENO: result: Enabling ELF shared libraries" >&5
echo "${ECHO_T}Enabling ELF shared libraries" >&6; }
fi
@@ -3962,6 +3968,8 @@ fi
+
+
# Check whether --enable-jbd-debug was given.
if test "${enable_jbd_debug+set}" = set; then
enableval=$enable_jbd_debug; if test "$enableval" = "no"
@@ -15902,8 +15910,8 @@ CHECKER_CMT!$CHECKER_CMT$ac_delim
LIB_EXT!$LIB_EXT$ac_delim
STATIC_LIB_EXT!$STATIC_LIB_EXT$ac_delim
PROFILED_LIB_EXT!$PROFILED_LIB_EXT$ac_delim
-TEST_IO_CMT!$TEST_IO_CMT$ac_delim
-DEBUGFS_CMT!$DEBUGFS_CMT$ac_delim
+LDFLAG_DYNAMIC!$LDFLAG_DYNAMIC$ac_delim
+PRIVATE_LIBS_CMT!$PRIVATE_LIBS_CMT$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 73; then
@@ -15977,6 +15985,8 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+TEST_IO_CMT!$TEST_IO_CMT$ac_delim
+DEBUGFS_CMT!$DEBUGFS_CMT$ac_delim
IMAGER_CMT!$IMAGER_CMT$ac_delim
RESIZER_CMT!$RESIZER_CMT$ac_delim
FSCK_PROG!$FSCK_PROG$ac_delim
@@ -16060,7 +16070,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 83; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -16508,4 +16518,3 @@ if test "$no_create" != yes; then
fi
if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
-
diff --git a/configure.in b/configure.in
index fcca2ac..7ec6945 100644
--- a/configure.in
+++ b/configure.in
@@ -211,6 +211,8 @@ dnl
dnl This needs to be before all of the --enable-*-shlibs options
dnl
E2_PKG_CONFIG_STATIC=--static
+LDFLAG_DYNAMIC=
+PRIVATE_LIBS_CMT=
dnl
dnl handle --enable-elf-shlibs
dnl
@@ -232,6 +234,8 @@ else
esac]
BINARY_TYPE=elfbin
LIB_EXT=.so
+ PRIVATE_LIBS_CMT=#
+ LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
AC_MSG_RESULT([Enabling ELF shared libraries])
fi
,
@@ -322,6 +326,8 @@ dnl
AC_SUBST(LIB_EXT)
AC_SUBST(STATIC_LIB_EXT)
AC_SUBST(PROFILED_LIB_EXT)
+AC_SUBST(LDFLAG_DYNAMIC)
+AC_SUBST(PRIVATE_LIBS_CMT)
dnl
dnl handle --enable-jbd-debug
dnl
@@ -921,4 +927,3 @@ for i in MCONFIG Makefile e2fsprogs.spec \
done
AC_OUTPUT($outlist)
if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
-
diff --git a/e2fsck/Makefile.in b/e2fsck/Makefile.in
index 7006b62..fe0fab5 100644
--- a/e2fsck/Makefile.in
+++ b/e2fsck/Makefile.in
@@ -8,7 +8,6 @@ VPATH = @srcdir@
top_builddir = ..
my_dir = e2fsck
INSTALL = @INSTALL@
-LDFLAG_STATIC = @LDFLAG_STATIC@
@MCONFIG@
@@ -119,8 +118,7 @@ e2fsck: $(OBJS) $(DEPLIBS)
e2fsck.static: $(OBJS) $(STATIC_DEPLIBS)
@echo " LD $@"
- @$(LD) $(ALL_LDFLAGS) $(LDFLAG_STATIC) -o e2fsck.static $(OBJS) \
- $(STATIC_LIBS)
+ @$(LD) $(LDFLAGS_STATIC) -o e2fsck.static $(OBJS) $(STATIC_LIBS)
e2fsck.profiled: $(PROFILED_OBJS) $(PROFILED_DEPLIBS)
@echo " LD $@"
diff --git a/misc/Makefile.in b/misc/Makefile.in
index a81df8a..c208571 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -108,7 +108,7 @@ tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBS_BLKID)
tune2fs.static: $(TUNE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBBLKID)
@echo " LD $@"
- @$(CC) $(ALL_LDFLAGS) -static -o tune2fs.static $(TUNE2FS_OBJS) \
+ @$(CC) $(LDFLAGS_STATIC) -o tune2fs.static $(TUNE2FS_OBJS) \
$(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
$(STATIC_LIBE2P) $(LIBINTL)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd873d5653ef8d9e0c9003feb93980ec54b358521dfc65163b84e8e3ebfe84fb
size 3856795

3
e2fsprogs-1.41.4.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0366ef68b35ff094f5e6bce3b715d2291639732e384c25446833efe1db7c2f16
size 3882283

View File

@ -1,7 +1,7 @@
diff --git a/misc/Makefile.in b/misc/Makefile.in
index be362e9..80af1b3 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
Index: e2fsprogs-1.41.4/misc/Makefile.in
===================================================================
--- e2fsprogs-1.41.4.orig/misc/Makefile.in 2008-11-15 18:33:33.000000000 +0100
+++ e2fsprogs-1.41.4/misc/Makefile.in 2009-02-03 12:45:22.000000000 +0100
@@ -40,7 +40,7 @@ UUIDD_OBJS= uuidd.o
DUMPE2FS_OBJS= dumpe2fs.o
BADBLOCKS_OBJS= badblocks.o
@ -10,18 +10,18 @@ index be362e9..80af1b3 100644
+FSCK_OBJS= fsck.o base_device.o ismounted.o fsck_volume_id.o
BLKID_OBJS= blkid.o
FILEFRAG_OBJS= filefrag.o
E2UNDO_OBJS= e2undo.o
@@ -81,6 +81,9 @@ PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS)
STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
@@ -62,6 +62,9 @@ STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
LIBS_BLKID= $(LIBBLKID) $(LIBUUID)
DEPLIBS_BLKID= $(DEPLIBBLKID) $(DEPLIBUUID)
+LIBS_VOLID= -lvolume_id
+DEPLIBS_VOLID=
+LIBVOLID= -lvolume_id
+DEPLIBVOLID=
+
LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR)
DEPLIBS_E2P= $(LIBE2P) $(LIBCOM_ERR)
@@ -117,10 +120,6 @@ base_device: base_device.c
@@ -184,10 +187,6 @@ base_device: base_device.c
@$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(srcdir)/base_device.c \
-DDEBUG -o base_device
@ -32,22 +32,29 @@ index be362e9..80af1b3 100644
mklost+found: $(MKLPF_OBJS)
@echo " LD $@"
@$(CC) $(ALL_LDFLAGS) -o mklost+found $(MKLPF_OBJS) $(LIBINTL)
@@ -157,9 +156,9 @@ dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBUUID)
@$(CC) $(ALL_LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) \
$(LIBS_E2P) $(LIBUUID) $(LIBINTL)
@@ -250,14 +249,14 @@ dumpe2fs.profiled: $(PROFILED_DUMPE2FS_O
$(PROFILED_DUMPE2FS_OBJS) $(PROFILED_LIBS) \
$(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL)
-fsck: $(FSCK_OBJS) $(DEBLIBS_BLKID)
+fsck: $(FSCK_OBJS) $(DEBLIBS_VOLID)
-fsck: $(FSCK_OBJS) $(DEPLIBBLKID)
+fsck: $(FSCK_OBJS) $(DEPLIBVOLID)
@echo " LD $@"
- @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBS_BLKID) $(LIBINTL)
+ @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBS_VOLID) $(LIBINTL)
- @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL)
+ @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBVOLID) $(LIBINTL)
-fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
+fsck.profiled: $(PROFILED_FSCK_OBJS) $(DEPLIBVOLID)
@echo " LD $@"
@$(CC) $(ALL_LDFLAGS) -g -pg -o fsck.profiled $(PROFILED_FSCK_OBJS) \
- $(PROFILED_LIBBLKID) $(LIBINTL)
+ $(LIBVOLID) $(LIBINTL)
badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS)
@echo " LD $@"
diff --git a/misc/base_device.c b/misc/base_device.c
index 6237d0e..c3261fc 100644
--- a/misc/base_device.c
+++ b/misc/base_device.c
Index: e2fsprogs-1.41.4/misc/base_device.c
===================================================================
--- e2fsprogs-1.41.4.orig/misc/base_device.c 2009-02-03 12:24:08.000000000 +0100
+++ e2fsprogs-1.41.4/misc/base_device.c 2009-02-03 12:24:48.000000000 +0100
@@ -27,6 +27,8 @@
#endif
#include <ctype.h>
@ -57,11 +64,11 @@ index 6237d0e..c3261fc 100644
#include "fsck.h"
diff --git a/misc/fsck.c b/misc/fsck.c
index 5cf1a1c..ad1d7a9 100644
--- a/misc/fsck.c
+++ b/misc/fsck.c
@@ -59,7 +59,6 @@
Index: e2fsprogs-1.41.4/misc/fsck.c
===================================================================
--- e2fsprogs-1.41.4.orig/misc/fsck.c 2009-02-03 12:24:08.000000000 +0100
+++ e2fsprogs-1.41.4/misc/fsck.c 2009-02-03 12:24:48.000000000 +0100
@@ -61,7 +61,6 @@
#include "../version.h"
#include "nls-enable.h"
#include "fsck.h"
@ -69,7 +76,7 @@ index 5cf1a1c..ad1d7a9 100644
#ifndef _PATH_MNTTAB
#define _PATH_MNTTAB "/etc/fstab"
@@ -118,7 +117,6 @@ struct fs_info *filesys_info = NULL, *filesys_last = NULL;
@@ -122,7 +121,6 @@ struct fs_info *filesys_info = NULL, *fi
struct fsck_instance *instance_list;
const char *fsck_prefix_path = "/sbin:/sbin/fs.d:/sbin/fs:/etc/fs:/etc";
char *fsck_path = 0;
@ -77,7 +84,7 @@ index 5cf1a1c..ad1d7a9 100644
static char *string_copy(const char *s)
{
@@ -296,7 +294,7 @@ static int parse_fstab_line(char *line, struct fs_info **ret_fs)
@@ -298,7 +296,7 @@ static int parse_fstab_line(char *line,
parse_escape(freq);
parse_escape(passno);
@ -86,7 +93,7 @@ index 5cf1a1c..ad1d7a9 100644
if (dev)
device = dev;
@@ -321,7 +319,7 @@ static void interpret_type(struct fs_info *fs)
@@ -323,7 +321,7 @@ static void interpret_type(struct fs_inf
if (strcmp(fs->type, "auto") != 0)
return;
@ -95,7 +102,7 @@ index 5cf1a1c..ad1d7a9 100644
if (t) {
free(fs->type);
fs->type = t;
@@ -1104,7 +1102,7 @@ static void PRS(int argc, char *argv[])
@@ -1120,7 +1118,7 @@ static void PRS(int argc, char *argv[])
progname);
exit(EXIT_ERROR);
}
@ -104,7 +111,7 @@ index 5cf1a1c..ad1d7a9 100644
if (!dev && strchr(arg, '=')) {
/*
* Check to see if we failed because
@@ -1250,7 +1248,7 @@ int main(int argc, char *argv[])
@@ -1266,7 +1264,7 @@ int main(int argc, char *argv[])
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
textdomain(NLS_CAT_NAME);
#endif
@ -113,7 +120,7 @@ index 5cf1a1c..ad1d7a9 100644
PRS(argc, argv);
if (!notitle)
@@ -1319,6 +1317,6 @@ int main(int argc, char *argv[])
@@ -1337,6 +1335,6 @@ int main(int argc, char *argv[])
}
status |= wait_many(FLAG_WAIT_ALL);
free(fsck_path);
@ -121,11 +128,11 @@ index 5cf1a1c..ad1d7a9 100644
+ fsck_put_cache();
return status;
}
diff --git a/misc/fsck.h b/misc/fsck.h
index 55cb525..242b21e 100644
--- a/misc/fsck.h
+++ b/misc/fsck.h
@@ -66,5 +66,10 @@ struct fsck_instance {
Index: e2fsprogs-1.41.4/misc/fsck.h
===================================================================
--- e2fsprogs-1.41.4.orig/misc/fsck.h 2009-02-03 12:24:08.000000000 +0100
+++ e2fsprogs-1.41.4/misc/fsck.h 2009-02-03 12:24:48.000000000 +0100
@@ -66,6 +66,11 @@ struct fsck_instance {
struct fsck_instance *next;
};
@ -134,13 +141,13 @@ index 55cb525..242b21e 100644
+extern char *fsck_get_devname(const char *device);
+extern char *fsck_get_fstype(const char *device);
+
extern char *base_device(const char *device);
extern const char *identify_fs(const char *fs_name, const char *fs_types);
diff --git a/misc/fsck_volume_id.c b/misc/fsck_volume_id.c
new file mode 100644
index 0000000..9456394
--- /dev/null
+++ b/misc/fsck_volume_id.c
extern dev_t base_devt(const char *device);
extern int match_device(const char *dev1, const char *dev2);
Index: e2fsprogs-1.41.4/misc/fsck_volume_id.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ e2fsprogs-1.41.4/misc/fsck_volume_id.c 2009-02-03 12:24:48.000000000 +0100
@@ -0,0 +1,132 @@
+/*
+ * Wrapper for libvolume_id

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96e022f5ff6812872f54a7b5bbf8ade253989d633b81639926bb32fb69816904
size 42772
oid sha256:7c72de539b23710bd85095a7141fa909836fb9ef747e27cea18f7fb109bb127b
size 46572

View File

@ -1,3 +1,95 @@
-------------------------------------------------------------------
Tue Feb 3 15:14:47 CET 2009 - mkoenig@suse.de
- update to version 1.41.4:
debugfs:
* enhance the "ncheck" command
* enhance "hash" command
* fix a potential memory leak
* fix the usage message for logdump command
* fix ncheck command so that it prints all of the names of
hardlinks in the same directory
* e2fsprogs 1.41 broke debugfs's logdump command for normal
ext3/4 filesystems with 32-bit block numbers, when the headers
for 64-bit block numbers was added. This regression has been fixed
* ncheck command has been fixed to avoid printing garbage
characters at the end of file names
e2fsck:
* don't accidentally print the translation file's
header when asking the user a custom question
* print the correct inode number for uinit_bg related problems
* will now offer to clear the test_fs flag if the ext4 filesystem
is available on linux
* fix a bug where in preen mode, if there are disk I/O errors
while trying to close a filesystem can lead to infinite loops
* no longer abort an fsck run if block group has an errant
INODE_UNINIT flag
* distinguish between fragmented directories and fragmented
files in verbose mode statistics and in the fragcheck report
* fix a bug which caused it double count non-contiguous
extent-based inodes
* e2fsck will leave some slack space when repacking directories
to allow room for a few directory entries to be added without
causing leaf nodes to be split right away
* fix a bug which caused e2fsck to crash when it comes across a
corrupted interior node in an extent tree
* e2fsck problem descriptions involving the journal are no longer
referred to as "ext3" problems, since ext4 filesystems also have
journals
* fix a long-standing bug in e2fsck which would cause it to crash
when replying journals for filesystems with block sizes greater
than 8k
badblocks:
* support for normal files which are greater than 2GB
* display the time and percentage complete when in verbose mode
resize2fs:
* fix a potential memory corruption problem
* fix a bug in resize2fs where passing in a bogus new size of
0 blocks will cause resize2fs to drop into an infinite loop
* fix resize2fs for ext4 filesystems
tune2fs:
* now updates the block group checksums when changing the UUID
to avoid causing e2fsck to complain vociferously at the next reboot
* inode size resizing algorithms have been fixed so it is not
vastly inefficient for moderate-to-large filesystems
* fix inode resizing algorithm so it will not corrupt filesystems
laid out for RAID filesystems; in addition, tune2fs will refuse
to change the inode size for filesystems that have the flex_bg
feature enabled
dumpe2fs:
* fix bug which caused dumpe2fs to abort with an error if run on a
filesystem that contained an external journal
mke2fs:
* new option -U, which allows the user to specify the UUID that
should be used for the new filesystem
* treat devices that are exactly 16TB as if they were 16TB minus
one block
blkid:
* fix a file descriptor leak in libblkid
* correctly detect whether the ext4 and ext4dev filesystems
are available, so that the ext4dev->ext4 fallback code works
correctly
* fixed a bug which could sometimes cause blkid to return an
exit value of zero for a non-existent device
* recognize ext3 filesystems that have the test_fs flag
set as ext3 filesystems
* recognize btrfs filesystems and swap devices currently used
by user-level software suspend
libext2fs:
* add a check in the Unix I/O functions in libext2fs so that
when a device is opened read/write, return an error if the
device is read-only using the BLKROGET ioctl
- the libcom_err patches for bnc#66534 have been removed because
git commit d7f45af802330a0e1450afa05185d3722e77a76c
should fix the problem
- remove patches
e2fsprogs-1.41.1-e2fsck_fix_automatic_blocksize_detection.patch
e2fsprogs-1.41.1-function_signature_fix.patch
e2fsprogs-1.41.1-link_fix.patch
libcom_err-disable_test.patch
libcom_err-mutex.patch
libcom_err-no-init_error_table.patch
-------------------------------------------------------------------
Tue Jan 13 12:34:56 CET 2009 - olh@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package e2fsprogs (Version 1.41.1)
# spec file for package e2fsprogs (Version 1.41.4)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -31,8 +31,8 @@ AutoReqProv: on
Obsoletes: e2fsprogs-64bit
%endif
#
Version: 1.41.1
Release: 13
Version: 1.41.4
Release: 1
Summary: Utilities for the Second Extended File System
Url: http://e2fsprogs.sourceforge.net
Source: %{name}-%{version}.tar.bz2
@ -47,15 +47,8 @@ Patch1: e2fsprogs-mdraid.patch
Patch2: e2fsprogs-base_devt.patch
Patch3: e2fsprogs-libvolume_id-support.patch
Patch5: e2fsprogs-1.40.4-uuidd_pid_path.patch
Patch6: e2fsprogs-1.41.1-link_fix.patch
Patch7: e2fsprogs-1.41.1-splash_support.patch
Patch8: e2fsprogs-1.41.1-e2fsck_fix_automatic_blocksize_detection.patch
Patch9: e2fsprogs-1.41.1-function_signature_fix.patch
# libcom_err patches
# 66534 - [SL 10.0] et_list handling of krb5 and libcom_err.so.2 conflict
Patch31: libcom_err-no-init_error_table.patch
Patch32: libcom_err-disable_test.patch
Patch33: libcom_err-mutex.patch
Patch34: libcom_err-compile_et_permissions.patch
# Do not suppress make commands
Patch99: e2fsprogs-no_cmd_hiding.patch
@ -268,14 +261,8 @@ Authors:
%patch2 -p1
%patch3 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
# libcom_err patches
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%if %{no_command_hiding}
%patch99 -p1
@ -319,7 +306,6 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man8/fsck.ext4.8
%check
make check
make gcc-wall
%clean
rm -rf $RPM_BUILD_ROOT
@ -493,6 +479,95 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man3/com_err.3.gz
%changelog
* Tue Feb 03 2009 mkoenig@suse.de
- update to version 1.41.4:
debugfs:
* enhance the "ncheck" command
* enhance "hash" command
* fix a potential memory leak
* fix the usage message for logdump command
* fix ncheck command so that it prints all of the names of
hardlinks in the same directory
* e2fsprogs 1.41 broke debugfs's logdump command for normal
ext3/4 filesystems with 32-bit block numbers, when the headers
for 64-bit block numbers was added. This regression has been fixed
* ncheck command has been fixed to avoid printing garbage
characters at the end of file names
e2fsck:
* don't accidentally print the translation file's
header when asking the user a custom question
* print the correct inode number for uinit_bg related problems
* will now offer to clear the test_fs flag if the ext4 filesystem
is available on linux
* fix a bug where in preen mode, if there are disk I/O errors
while trying to close a filesystem can lead to infinite loops
* no longer abort an fsck run if block group has an errant
INODE_UNINIT flag
* distinguish between fragmented directories and fragmented
files in verbose mode statistics and in the fragcheck report
* fix a bug which caused it double count non-contiguous
extent-based inodes
* e2fsck will leave some slack space when repacking directories
to allow room for a few directory entries to be added without
causing leaf nodes to be split right away
* fix a bug which caused e2fsck to crash when it comes across a
corrupted interior node in an extent tree
* e2fsck problem descriptions involving the journal are no longer
referred to as "ext3" problems, since ext4 filesystems also have
journals
* fix a long-standing bug in e2fsck which would cause it to crash
when replying journals for filesystems with block sizes greater
than 8k
badblocks:
* support for normal files which are greater than 2GB
* display the time and percentage complete when in verbose mode
resize2fs:
* fix a potential memory corruption problem
* fix a bug in resize2fs where passing in a bogus new size of
0 blocks will cause resize2fs to drop into an infinite loop
* fix resize2fs for ext4 filesystems
tune2fs:
* now updates the block group checksums when changing the UUID
to avoid causing e2fsck to complain vociferously at the next reboot
* inode size resizing algorithms have been fixed so it is not
vastly inefficient for moderate-to-large filesystems
* fix inode resizing algorithm so it will not corrupt filesystems
laid out for RAID filesystems; in addition, tune2fs will refuse
to change the inode size for filesystems that have the flex_bg
feature enabled
dumpe2fs:
* fix bug which caused dumpe2fs to abort with an error if run on a
filesystem that contained an external journal
mke2fs:
* new option -U, which allows the user to specify the UUID that
should be used for the new filesystem
* treat devices that are exactly 16TB as if they were 16TB minus
one block
blkid:
* fix a file descriptor leak in libblkid
* correctly detect whether the ext4 and ext4dev filesystems
are available, so that the ext4dev->ext4 fallback code works
correctly
* fixed a bug which could sometimes cause blkid to return an
exit value of zero for a non-existent device
* recognize ext3 filesystems that have the test_fs flag
set as ext3 filesystems
* recognize btrfs filesystems and swap devices currently used
by user-level software suspend
libext2fs:
* add a check in the Unix I/O functions in libext2fs so that
when a device is opened read/write, return an error if the
device is read-only using the BLKROGET ioctl
- the libcom_err patches for bnc#66534 have been removed because
git commit d7f45af802330a0e1450afa05185d3722e77a76c
should fix the problem
- remove patches
e2fsprogs-1.41.1-e2fsck_fix_automatic_blocksize_detection.patch
e2fsprogs-1.41.1-function_signature_fix.patch
e2fsprogs-1.41.1-link_fix.patch
libcom_err-disable_test.patch
libcom_err-mutex.patch
libcom_err-no-init_error_table.patch
* Tue Jan 13 2009 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Thu Dec 04 2008 mkoenig@suse.de

View File

@ -1,31 +0,0 @@
Index: e2fsprogs-1.40.5/lib/et/Makefile.in
===================================================================
--- e2fsprogs-1.40.5.orig/lib/et/Makefile.in
+++ e2fsprogs-1.40.5/lib/et/Makefile.in
@@ -110,16 +110,16 @@ uninstall::
$(RM) -rf $(DESTDIR)$(includedir)/et $(DESTDIR)$(datadir)/et
check:: compile_et
- for i in $(srcdir)/test_cases/*.et ; do \
- t=`basename $$i | sed -e 's/.et//'`; \
- ./compile_et --build-tree $$i ; \
- diff -c $(srcdir)/test_cases/$$t.c $$t.c > $$t.failed; \
- if [ $$? -ne 0 ]; then echo Test case $$t failed; exit 1 ; fi ; \
- diff -c $(srcdir)/test_cases/$$t.h $$t.h >> $$t.failed; \
- if [ $$? -ne 0 ]; then echo Test case $$t failed; exit 1 ; fi ; \
- $(RM) -f $$t.c $$t.h $$t.failed; \
- echo "Test case $$t succeeded" ; \
- done
+# for i in $(srcdir)/test_cases/*.et ; do \
+# t=`basename $$i | sed -e 's/.et//'`; \
+# ./compile_et --build-tree $$i ; \
+# diff -c $(srcdir)/test_cases/$$t.c $$t.c > $$t.failed; \
+# if [ $$? -ne 0 ]; then echo Test case $$t failed; exit 1 ; fi ; \
+# diff -c $(srcdir)/test_cases/$$t.h $$t.h >> $$t.failed; \
+# if [ $$? -ne 0 ]; then echo Test case $$t failed; exit 1 ; fi ; \
+# $(RM) -f $$t.c $$t.h $$t.failed; \
+# echo "Test case $$t succeeded" ; \
+# done
clean::
$(RM) -f compile_et libcom_err.a libcom_err_p.a com_err.info

View File

@ -1,190 +0,0 @@
Index: e2fsprogs-1.40.4/lib/et/com_err.pc.in
===================================================================
--- e2fsprogs-1.40.4.orig/lib/et/com_err.pc.in
+++ e2fsprogs-1.40.4/lib/et/com_err.pc.in
@@ -7,5 +7,5 @@ Name: com_err
Description: Common error description library
Version: @E2FSPROGS_VERSION@
Requires:
-Cflags: -I${includedir}
-Libs: -L${libdir} -lcom_err
+Cflags: -I${includedir} -pthread
+Libs: -L${libdir} -lcom_err -pthread
Index: e2fsprogs-1.40.4/lib/et/error_message.c
===================================================================
--- e2fsprogs-1.40.4.orig/lib/et/error_message.c
+++ e2fsprogs-1.40.4/lib/et/error_message.c
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
+#include <pthread.h>
#ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#else
@@ -41,6 +42,17 @@
struct et_list * _et_list = (struct et_list *) NULL;
struct et_list * _et_dynamic_list = (struct et_list *) NULL;
+static pthread_mutex_t _et_lock = PTHREAD_MUTEX_INITIALIZER;
+
+int et_list_lock()
+{
+ return pthread_mutex_lock(&_et_lock);
+}
+
+int et_list_unlock()
+{
+ return pthread_mutex_unlock(&_et_lock);
+}
const char * error_message (errcode_t code)
{
@@ -66,22 +78,32 @@ const char * error_message (errcode_t co
goto oops;
#endif
}
+ et_list_lock();
for (et = _et_list; et; et = et->next) {
if ((et->table->base & 0xffffffL) == (table_num & 0xffffffL)) {
/* This is the right table */
- if (et->table->n_msgs <= offset)
- goto oops;
- return(et->table->msgs[offset]);
+ if (et->table->n_msgs <= offset) {
+ break;
+ } else {
+ const char *msg = et->table->msgs[offset];
+ et_list_unlock();
+ return(msg);
+ }
}
}
for (et = _et_dynamic_list; et; et = et->next) {
if ((et->table->base & 0xffffffL) == (table_num & 0xffffffL)) {
/* This is the right table */
- if (et->table->n_msgs <= offset)
- goto oops;
- return(et->table->msgs[offset]);
+ if (et->table->n_msgs <= offset) {
+ break;
+ } else {
+ const char *msg = et->table->msgs[offset];
+ et_list_unlock();
+ return(msg);
+ }
}
}
+ et_list_unlock();
oops:
return "Unknown code";
}
@@ -150,6 +172,9 @@ errcode_t add_error_table(const struct e
if (!(el = (struct et_list *) malloc(sizeof(struct et_list))))
return ENOMEM;
+ if( 0 != et_list_lock())
+ return errno;
+
el->table = et;
el->next = _et_dynamic_list;
_et_dynamic_list = el;
@@ -160,6 +185,7 @@ errcode_t add_error_table(const struct e
error_table_name(et->base),
(const void *) et);
+ et_list_unlock();
return 0;
}
@@ -168,9 +194,13 @@ errcode_t add_error_table(const struct e
*/
errcode_t remove_error_table(const struct error_table * et)
{
- struct et_list *el = _et_dynamic_list;
+ struct et_list *el;
struct et_list *el2 = 0;
+ if( 0 != et_list_lock())
+ return ENOENT;
+
+ el = _et_dynamic_list;
init_debug();
while (el) {
if (el->table->base == et->base) {
@@ -184,6 +214,7 @@ errcode_t remove_error_table(const struc
"remove_error_table: %s (0x%p)\n",
error_table_name(et->base),
(const void *) et);
+ et_list_unlock();
return 0;
}
el2 = el;
@@ -193,6 +224,7 @@ errcode_t remove_error_table(const struc
fprintf(debug_f, "remove_error_table FAILED: %s (0x%p)\n",
error_table_name(et->base),
(const void *) et);
+ et_list_unlock();
return ENOENT;
}
Index: e2fsprogs-1.40.4/lib/et/error_table.h
===================================================================
--- e2fsprogs-1.40.4.orig/lib/et/error_table.h
+++ e2fsprogs-1.40.4/lib/et/error_table.h
@@ -19,6 +19,8 @@ struct et_list {
const struct error_table *table;
};
extern struct et_list * _et_list;
+extern int et_list_lock(void);
+extern int et_list_unlock(void);
#define ERRCODE_RANGE 8 /* # of bits to shift table number */
#define BITS_PER_CHAR 6 /* # bits to shift per character in name */
Index: e2fsprogs-1.40.4/lib/et/et_c.awk
===================================================================
--- e2fsprogs-1.40.4.orig/lib/et/et_c.awk
+++ e2fsprogs-1.40.4/lib/et/et_c.awk
@@ -225,6 +225,8 @@ END {
print " const struct error_table * table;" > outfile
print "};" > outfile
print "extern struct et_list *_et_list;" > outfile
+ print "extern int et_list_lock();" > outfile
+ print "extern int et_list_unlock();" > outfile
print "" > outfile
if (tab_base_high == 0) {
print "const struct error_table et_" table_name "_error_table = { text, " \
@@ -242,7 +244,22 @@ END {
print "void initialize_" table_name "_error_table(void);" > outfile
print "" > outfile
print "void initialize_" table_name "_error_table(void) {" > outfile
- print " initialize_" table_name "_error_table_r(&_et_list);" > outfile
+ print " if(0 == et_list_lock()) {" > outfile
+ print " if ( !link.table) {" > outfile
+ print " struct et_list *el = _et_list;" > outfile
+ print " while (el) {" > outfile
+ print " if (el->table->base == et_" table_name "_error_table.base) {" > outfile
+ print " et_list_unlock();" > outfile
+ print " return;" > outfile
+ print " }" > outfile
+ print " el = el->next;" > outfile
+ print " }" > outfile
+ print " link.next = _et_list;" > outfile
+ print " link.table = &et_" table_name "_error_table;" > outfile
+ print " _et_list = &link;" > outfile
+ print " }" > outfile
+ print " et_list_unlock();" > outfile
+ print " }" > outfile
print "}" > outfile
print "" > outfile
print "/* For Heimdal compatibility */" > outfile
@@ -255,9 +272,6 @@ END {
print " return;" > outfile
print " et = malloc(sizeof(struct et_list));" > outfile
print " if (et == 0) {" > outfile
- print " if (!link.table)" > outfile
- print " et = &link;" > outfile
- print " else" > outfile
print " return;" > outfile
print " }" > outfile
print " et->table = &et_" table_name "_error_table;" > outfile

View File

@ -1,29 +0,0 @@
--- e2fsprogs-1.39/lib/et/com_err.h
+++ e2fsprogs-1.39/lib/et/com_err.h
@@ -41,7 +41,10 @@
(const char *, long, const char *, va_list);
extern void (*reset_com_err_hook (void)) (const char *, long,
const char *, va_list);
+#if 0
extern int init_error_table(const char * const *msgs, long base, int count);
+#endif
+#define init_error_table(...) PLEASE_DO_NOT_USE_init_error_table_FUNCTION
extern errcode_t add_error_table(const struct error_table * et);
extern errcode_t remove_error_table(const struct error_table * et);
--- e2fsprogs-1.39/lib/et/init_et.c
+++ e2fsprogs-1.39/lib/et/init_et.c
@@ -16,6 +16,7 @@
* express or implied warranty.
*/
+#if 0
#include <stdio.h>
#include <errno.h>
#ifdef HAVE_STDLIB_H
@@ -50,3 +51,5 @@
_et_dynamic_list = &new_et->etl;
return 0;
}
+#endif
+