From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Price Date: Wed, 15 Jun 2011 13:18:31 +0100 Subject: [Cluster-devel] [PATCH] gfs2_edit: Fix savemeta compression for older zlibs Message-ID: <1308140311-24020-1-git-send-email-anprice@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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. Signed-off-by: Andrew Price --- 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 1797568..0c567da 100644 --- a/gfs2/edit/savemeta.c +++ b/gfs2/edit/savemeta.c @@ -211,7 +211,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) { @@ -234,7 +234,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)); -- 1.7.5.2