[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] Cluster Project branch, STABLE2, updated. cluster-2.03.04-27-ga193e83



This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=a193e83fa55d43c3216ac64d28252a9c2cf2b5ae

The branch, STABLE2 has been updated
       via  a193e83fa55d43c3216ac64d28252a9c2cf2b5ae (commit)
      from  47cf8d572161f188b60e56625cd6fc150879dc03 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a193e83fa55d43c3216ac64d28252a9c2cf2b5ae
Author: Bob Peterson <rpeterso redhat com>
Date:   Mon Jun 23 11:28:57 2008 -0500

    savemeta was not saving gfs1 journals properly.

-----------------------------------------------------------------------

Summary of changes:
 gfs2/edit/savemeta.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index c6ef3bd..668501f 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -37,6 +37,7 @@ struct saved_metablock *savedata;
 uint64_t last_fs_block, last_reported_block, blks_saved, total_out, pct;
 struct gfs2_block_list *blocklist = NULL;
 uint64_t journal_blocks[MAX_JOURNALS_SAVED];
+uint64_t gfs1_journal_size = 0; /* in blocks */
 int journals_found = 0;
 
 extern void read_superblock(void);
@@ -699,6 +700,7 @@ void get_journal_inode_blocks(void)
 				break;
 			gfs_jindex_in(&ji, jbuf);
 			jblock = ji.ji_addr;
+			gfs1_journal_size = ji.ji_nsegment * 16;
 		} else {
 			if (journal > indirect->ii[0].dirents - 3)
 				break;
@@ -802,9 +804,20 @@ void savemeta(const char *out_fn, int saveoption)
 		/* If this is gfs1, save off the rindex because it's not
 		   part of the file system as it is in gfs2. */
 		if (gfs1) {
+			int j;
+
 			block = sbd1->sb_rindex_di.no_addr;
 			save_block(sbd.device_fd, out_fd, block);
 			save_inode_data(out_fd);
+			/* In GFS1, journals aren't part of the RG space */
+			for (j = 0; j < journals_found; j++) {
+				log_debug("Saving journal #%d\n", j + 1);
+				for (block = journal_blocks[j];
+				     block < journal_blocks[j] +
+					     gfs1_journal_size;
+				     block++)
+					save_block(sbd.device_fd, out_fd, block);
+			}
 		}
 		/* Walk through the resource groups saving everything within */
 		for (tmp = sbd.rglist.next; tmp != &sbd.rglist;


hooks/post-receive
--
Cluster Project


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]