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

[Cluster-devel] Cluster Project branch, master, updated. cluster-2.99.04-59-g534045c



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=534045c7da331333e5389c4f25356931bebb583e

The branch, master has been updated
       via  534045c7da331333e5389c4f25356931bebb583e (commit)
      from  a2f1025d6e1595475afcdcd68d6f8205ecf99412 (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 534045c7da331333e5389c4f25356931bebb583e
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]