[Cluster-devel] Cluster Project branch, RHEL4, updated. gfs-kernel_2_6_9_76-29-gaac75cb

jbrassow at sourceware.org jbrassow at sourceware.org
Tue Apr 8 16:32:05 UTC 2008


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=aac75cba36115a59a489c0b1a52be5259f54fb87

The branch, RHEL4 has been updated
       via  aac75cba36115a59a489c0b1a52be5259f54fb87 (commit)
      from  9133a6446a47c56bd735d01d761f0c91f8491fe0 (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 aac75cba36115a59a489c0b1a52be5259f54fb87
Author: Jonathan Brassow <jbrassow at redhat.com>
Date:   Tue Apr 8 11:30:38 2008 -0500

    dm-cmirror.ko:  Part of the fix for bug 193067 (cluster pvmove)
    
    Allow mirror log to be created without the 'block_on_error'
    flag.

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

Summary of changes:
 cmirror-kernel/src/dm-cmirror-client.c |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/cmirror-kernel/src/dm-cmirror-client.c b/cmirror-kernel/src/dm-cmirror-client.c
index c644c13..c11cedc 100644
--- a/cmirror-kernel/src/dm-cmirror-client.c
+++ b/cmirror-kernel/src/dm-cmirror-client.c
@@ -574,11 +574,13 @@ static int cluster_ctr(struct dirty_log *log, struct dm_target *ti,
 
 	lc = log->context;
 
+	/* Pull this out to support pvmove
 	if (lc->failure_response != FR_BLOCK) {
 		DMERR("Clustered mirror requires \"block_on_error\" parameter");
 		error = -EINVAL;
 		goto fail;
 	}
+	*/
 
 	atomic_set(&lc->in_sync, -1);
 	lc->uuid_ref = 1;
@@ -663,7 +665,7 @@ static int cluster_ctr(struct dirty_log *log, struct dm_target *ti,
  * clustered_core log constructor
  * (preceding args::  <start> <len> mirror clustered_core <log_args>
  *
- * Right now, 3 <= argc <= 4.  "block_on_error" is required.
+ * Right now, 2 <= argc <= 4.
  *
  * argv contains:
  *   <region_size> <uuid> [[no]sync] [block_on_error]
@@ -671,9 +673,9 @@ static int cluster_ctr(struct dirty_log *log, struct dm_target *ti,
 static int cluster_core_ctr(struct dirty_log *log, struct dm_target *ti,
 		       unsigned int argc, char **argv) {
 	int i;
-	if ((argc < 3) || (argc > 4)) {
+	if ((argc < 2) || (argc > 4)) {
 		DMERR("Too %s arguments to clustered_core mirror log type.",
-		      (argc < 3) ? "few" : "many");
+		      (argc < 2) ? "few" : "many");
 		DMERR("  %d arguments supplied:", argc);
 		for (i = 0; i < argc; i++)
 			DMERR("    %s", argv[i]);
@@ -687,7 +689,7 @@ static int cluster_core_ctr(struct dirty_log *log, struct dm_target *ti,
  * clustered_disk log constructor
  * (preceding args::  <start> <len> mirror clustered_disk <log_args>
  *
- * Right now, 4 <= argc <= 5.  "block_on_error" is required.
+ * Right now, 3 <= argc <= 5.
  *
  * argv contains:
  *   <disk> <region_size> <uuid> [[no]sync] [block_on_error]
@@ -695,9 +697,9 @@ static int cluster_core_ctr(struct dirty_log *log, struct dm_target *ti,
 static int cluster_disk_ctr(struct dirty_log *log, struct dm_target *ti,
 		       unsigned int argc, char **argv) {
 	int i;
-	if ((argc < 4) || (argc > 5)) {
+	if ((argc < 3) || (argc > 5)) {
 		DMERR("Too %s arguments to clustered_disk mirror log type.",
-		      (argc < 4) ? "few" : "many");
+		      (argc < 3) ? "few" : "many");
 		DMERR("  %d arguments supplied:", argc);
 		for (i = 0; i < argc; i++)
 			DMERR("    %s", argv[i]);
@@ -981,7 +983,8 @@ fail:
 	if (r) {
 		DMERR("Log flush failure: %d%s", r,
 		      (r == -EIO) ? " -EIO" : "");
-		dm_table_event(lc->ti->table);
+		if (lc->failure_response == FR_BLOCK)
+			dm_table_event(lc->ti->table);
 		lc->log_dev_failed = 1;
 	}
 
@@ -1213,7 +1216,7 @@ static int cluster_status(struct dirty_log *log, status_type_t status,
 			  char *result, unsigned int maxlen)
 {
 	int sz = 0;
-	int arg_count=3;
+	int arg_count=2;
 	struct log_c *lc = (struct log_c *) log->context;
 
 	switch(status){
@@ -1275,6 +1278,9 @@ static int cluster_status(struct dirty_log *log, status_type_t status,
 		if(lc->sync != DEFAULTSYNC)
 			arg_count++;
 
+		if (lc->failure_response == FR_BLOCK)
+			arg_count++;
+
 		if (lc->log_dev) {
 			arg_count++;
 
@@ -1293,7 +1299,9 @@ static int cluster_status(struct dirty_log *log, status_type_t status,
 		}
 		if (lc->sync != DEFAULTSYNC)
 			DMEMIT("%ssync ", lc->sync == NOSYNC ? "no" : "");
-		DMEMIT("block_on_error ");
+
+		if (lc->failure_response == FR_BLOCK)
+			DMEMIT("block_on_error ");
         }
 
 	return sz;


hooks/post-receive
--
Cluster Project




More information about the Cluster-devel mailing list