cluster: RHEL6 - gfs2_edit: Fix savemeta compression for older zlibs

Andrew Price andyp at fedoraproject.org
Wed Jun 15 13:18:28 UTC 2011


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=d02df4bcd1aee3ed287ee8f8c08c34c47db4cd1e
Commit:        d02df4bcd1aee3ed287ee8f8c08c34c47db4cd1e
Parent:        997c01bbc3c808f08879f334cd64d93e6d73fc0b
Author:        Andrew Price <anprice at redhat.com>
AuthorDate:    Wed Jun 15 13:09:41 2011 +0100
Committer:     Andrew Price <anprice at redhat.com>
CommitterDate: Wed Jun 15 14:17:08 2011 +0100

gfs2_edit: Fix savemeta compression for older zlibs

gzdopen in zlib 1.2.3 parses the mode string in a different way to
subsequent versions and the mode string we use causes the older gzwrite
to fail with EBADF. This patch fixes the mode string so that the
gzwrites succeed with the old and new zlibs.

rhbz#702313

Reviewed-by: Steven Whitehouse <swhiteho at redhat.com>
Signed-off-by: Andrew Price <anprice at redhat.com>
---
 gfs2/edit/savemeta.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index cb7e243..160277c 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -209,7 +209,7 @@ static void warm_fuzzy_stuff(uint64_t wfsblock, int force)
 static struct metafd savemetaopen(char *out_fn, int gziplevel)
 {
 	struct metafd mfd;
-	char gzmode[5] = "rwb9";
+	char gzmode[3] = "w9";
 	char dft_fn[] = DFT_SAVE_FILE;
 
 	if (!out_fn) {
@@ -232,7 +232,7 @@ static struct metafd savemetaopen(char *out_fn, int gziplevel)
 
 	mfd.gziplevel = gziplevel;
 	if (gziplevel > 0) {
-		gzmode[3] = '0' + gziplevel;
+		gzmode[1] = '0' + gziplevel;
 		mfd.gzfd = gzdopen(mfd.fd, gzmode);
 		if (!mfd.gzfd) {
 			fprintf(stderr, "gzdopen error: %s\n", strerror(errno));


More information about the cluster-commits mailing list