From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30506 invoked by alias); 20 May 2009 15:39:36 -0000 Received: (qmail 30498 invoked by alias); 20 May 2009 15:39:36 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66,SPF_HELO_PASS X-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion2.fedora.phx.redhat.com Subject: gfs2-utils: master - mount failure after gfs2_edit restoremeta of GFS file system To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: gfs2-utils.git X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 4b13cb12368d959af971ab8c2cc4aa7bdd08e647 X-Git-Newrev: 764faccef5a7dc6988911502bcfcef806b1f83bb From: Bob Peterson Message-Id: <20090520153908.C5AEB1201EC@lists.fedorahosted.org> Date: Wed, 20 May 2009 15:39:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q2/txt/msg00342.txt.bz2 Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitdiff;h=764faccef5a7dc6988911502bcfcef806b1f83bb Commit: 764faccef5a7dc6988911502bcfcef806b1f83bb Parent: 4b13cb12368d959af971ab8c2cc4aa7bdd08e647 Author: Bob Peterson AuthorDate: Wed May 20 10:36:52 2009 -0500 Committer: Bob Peterson CommitterDate: Wed May 20 10:36:52 2009 -0500 mount failure after gfs2_edit restoremeta of GFS file system bz 501732 This patch fixes a problem with gfs2_edit savemeta. The problem was that when saving gfs (gfs1) journals, not enough data was being saved, due to a redundant copy of the log header data that gfs copies into the journal at an offset just short of 512 bytes. Therefore, we need to save 512 bytes of gfs log headers or else gfs won't be able to mount it. --- gfs2/edit/savemeta.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c index 4a36652..5b72547 100644 --- a/gfs2/edit/savemeta.c +++ b/gfs2/edit/savemeta.c @@ -92,7 +92,13 @@ static int get_gfs_struct_info(char *gbuf, int *block_type, int *gstruct_len) *gstruct_len = sizeof(struct gfs2_meta_header); break; case GFS2_METATYPE_LH: /* 8 (log header) */ - *gstruct_len = sizeof(struct gfs2_log_header); + if (gfs1) + *gstruct_len = 512; /* gfs copies the log header + twice and compares the copy, + so we need to save all 512 + bytes of it. */ + else + *gstruct_len = sizeof(struct gfs2_log_header); break; case GFS2_METATYPE_LD: /* 9 (log descriptor) */ *gstruct_len = sbd.bsize;