[Cluster-devel] [PATCH RHEL6] gfs2_edit: Fix savemeta compression for older zlibs

2011-06-15 Thread Andrew Price
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

Signed-off-by: Andrew Price anpr...@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));
-- 
1.7.5.2



Re: [Cluster-devel] [PATCH RHEL6] gfs2_edit: Fix savemeta compression for older zlibs

2011-06-15 Thread Steven Whitehouse
Hi,

Looks good,

Steve.

On Wed, 2011-06-15 at 14:10 +0100, Andrew Price wrote:
 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
 
 Signed-off-by: Andrew Price anpr...@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));