forked from pool/e2fsprogs
Rev openSUSE:Factory/41 Md5 3bcc8e74559fb988bcccb19f2424773b 2009-02-06 15:34:27 unknown None
This commit is contained in:
parent
2284a3b0dc
commit
9dd3225c98
@ -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,
|
@ -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;
|
@ -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)
|
||||
|
@ -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
3
e2fsprogs-1.41.4.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0366ef68b35ff094f5e6bce3b715d2291639732e384c25446833efe1db7c2f16
|
||||
size 3882283
|
@ -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
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:96e022f5ff6812872f54a7b5bbf8ade253989d633b81639926bb32fb69816904
|
||||
size 42772
|
||||
oid sha256:7c72de539b23710bd85095a7141fa909836fb9ef747e27cea18f7fb109bb127b
|
||||
size 46572
|
||||
|
@ -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
|
||||
|
||||
|
109
e2fsprogs.spec
109
e2fsprogs.spec
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
||||
+
|
Loading…
Reference in New Issue
Block a user