[Cluster-devel] [PATCH] gfs2_edit: Fix savemeta compression for older zlibs
Steven Whitehouse
swhiteho at redhat.com
Wed Jun 15 12:26:06 UTC 2011
Hi,
Looks good to me,
Steve.
On Wed, 2011-06-15 at 13:18 +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.
>
> 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 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));
More information about the Cluster-devel
mailing list