Parcourir la source

defect 748
rename sectioniterator to sectioniteration in executive and library


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@766 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake il y a 20 ans
Parent
commit
506b37b4c9
3 fichiers modifiés avec 32 ajouts et 26 suppressions
  1. 18 12
      exec/ckpt.c
  2. 2 2
      include/ipc_ckpt.h
  3. 12 12
      lib/ckpt.c

+ 18 - 12
exec/ckpt.c

@@ -148,7 +148,7 @@ static int message_handler_req_lib_ckpt_checkpointsynchronize (struct conn_info
 
 static int message_handler_req_lib_ckpt_checkpointsynchronizeasync (struct conn_info *conn_info, void *message);
 
-static int message_handler_req_lib_ckpt_sectioniteratorinitialize (struct conn_info *conn_info, void *message);
+static int message_handler_req_lib_ckpt_sectioniterationinitialize (struct conn_info *conn_info, void *message);
 static int message_handler_req_lib_ckpt_sectioniteratornext (struct conn_info *conn_info, void *message);
 
 
@@ -289,8 +289,8 @@ struct libais_handler ckpt_libais_handlers[] =
 		.flow_control		= FLOW_CONTROL_NOT_REQUIRED
 	},
 	{ /* 15 */
-		.libais_handler_fn	= message_handler_req_lib_ckpt_sectioniteratorinitialize,
-		.response_size		= sizeof (struct res_lib_ckpt_sectioniteratorinitialize),
+		.libais_handler_fn	= message_handler_req_lib_ckpt_sectioniterationinitialize,
+		.response_size		= sizeof (struct res_lib_ckpt_sectioniterationinitialize),
 		.response_id		= MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE,
 		.flow_control		= FLOW_CONTROL_NOT_REQUIRED
 	},
@@ -3335,10 +3335,10 @@ static int message_handler_req_lib_ckpt_checkpointsynchronizeasync (struct conn_
 	return (0);
 }
 
-static int message_handler_req_lib_ckpt_sectioniteratorinitialize (struct conn_info *conn_info, void *message)
+static int message_handler_req_lib_ckpt_sectioniterationinitialize (struct conn_info *conn_info, void *message)
 {
-	struct req_lib_ckpt_sectioniteratorinitialize *req_lib_ckpt_sectioniteratorinitialize = (struct req_lib_ckpt_sectioniteratorinitialize *)message;
-	struct res_lib_ckpt_sectioniteratorinitialize res_lib_ckpt_sectioniteratorinitialize;
+	struct req_lib_ckpt_sectioniterationinitialize *req_lib_ckpt_sectioniterationinitialize = (struct req_lib_ckpt_sectioniterationinitialize *)message;
+	struct res_lib_ckpt_sectioniterationinitialize res_lib_ckpt_sectioniterationinitialize;
 	struct saCkptCheckpoint *ckptCheckpoint;
 	struct saCkptCheckpointSection *ckptCheckpointSection;
 	struct saCkptSectionIteratorEntry *ckptSectionIteratorEntries;
@@ -3351,12 +3351,18 @@ static int message_handler_req_lib_ckpt_sectioniteratorinitialize (struct conn_i
 	log_printf (LOG_LEVEL_DEBUG, "section iterator initialize\n");
 	ckptSectionIterator = &conn_info->ais_ci.u.libckpt_ci.sectionIterator;
 
-	ckptCheckpoint = ckpt_checkpoint_find_global (&req_lib_ckpt_sectioniteratorinitialize->checkpointName);
+	ckptCheckpoint = ckpt_checkpoint_find_global (&req_lib_ckpt_sectioniterationinitialize->checkpointName);
 	if (ckptCheckpoint == 0) {
 		error = SA_AIS_ERR_NOT_EXIST;
 		goto error_exit;
 	}
 
+	if (ckptCheckpoint->active_replica_set == 0) {
+		log_printf (LOG_LEVEL_NOTICE, "iterationinitialize: no active replica, returning error.\n");
+		error = SA_AIS_ERR_NOT_EXIST;
+		goto error_exit;
+	}
+
 	/*
 	 * Iterate list of checkpoint sections
 	 */
@@ -3392,12 +3398,12 @@ static int message_handler_req_lib_ckpt_sectioniteratorinitialize (struct conn_i
 	ckptSectionIterator->iteratorCount = iteratorEntries;
 
 error_exit:
-	res_lib_ckpt_sectioniteratorinitialize.header.size = sizeof (struct res_lib_ckpt_sectioniteratorinitialize);
-	res_lib_ckpt_sectioniteratorinitialize.header.id = MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE;
-	res_lib_ckpt_sectioniteratorinitialize.header.error = error;
+	res_lib_ckpt_sectioniterationinitialize.header.size = sizeof (struct res_lib_ckpt_sectioniterationinitialize);
+	res_lib_ckpt_sectioniterationinitialize.header.id = MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE;
+	res_lib_ckpt_sectioniterationinitialize.header.error = error;
 
-	libais_send_response (conn_info, &res_lib_ckpt_sectioniteratorinitialize,
-		sizeof (struct res_lib_ckpt_sectioniteratorinitialize));
+	libais_send_response (conn_info, &res_lib_ckpt_sectioniterationinitialize,
+		sizeof (struct res_lib_ckpt_sectioniterationinitialize));
 
 	return (0);
 }

+ 2 - 2
include/ipc_ckpt.h

@@ -186,14 +186,14 @@ struct res_lib_ckpt_sectionexpirationtimeset {
 	struct res_header header;
 };
 
-struct req_lib_ckpt_sectioniteratorinitialize {
+struct req_lib_ckpt_sectioniterationinitialize {
 	struct req_header header;
 	SaNameT checkpointName;
 	SaCkptSectionsChosenT sectionsChosen;
 	SaTimeT expirationTime;
 };
 
-struct res_lib_ckpt_sectioniteratorinitialize {
+struct res_lib_ckpt_sectioniterationinitialize {
 	struct res_header header;
 };
 

+ 12 - 12
lib/ckpt.c

@@ -1165,8 +1165,8 @@ saCkptSectionIterationInitialize (
 	SaAisErrorT error;
 	struct ckptCheckpointInstance *ckptCheckpointInstance;
 	struct ckptSectionIterationInstance *ckptSectionIterationInstance;
-	struct req_lib_ckpt_sectioniteratorinitialize req_lib_ckpt_sectioniteratorinitialize;
-	struct res_lib_ckpt_sectioniteratorinitialize res_lib_ckpt_sectioniteratorinitialize;
+	struct req_lib_ckpt_sectioniterationinitialize req_lib_ckpt_sectioniterationinitialize;
+	struct res_lib_ckpt_sectioniterationinitialize res_lib_ckpt_sectioniterationinitialize;
 
 	if (sectionIterationHandle == NULL) {
 		return (SA_AIS_ERR_INVALID_PARAM);
@@ -1209,18 +1209,18 @@ saCkptSectionIterationInitialize (
 	 */
 	list_init (&ckptSectionIterationInstance->sectionIdListHead);
 
-	req_lib_ckpt_sectioniteratorinitialize.header.size = sizeof (struct req_lib_ckpt_sectioniteratorinitialize); 
-	req_lib_ckpt_sectioniteratorinitialize.header.id = MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE;
-	req_lib_ckpt_sectioniteratorinitialize.sectionsChosen = sectionsChosen;
-	req_lib_ckpt_sectioniteratorinitialize.expirationTime = expirationTime;
-	memcpy (&req_lib_ckpt_sectioniteratorinitialize.checkpointName,
+	req_lib_ckpt_sectioniterationinitialize.header.size = sizeof (struct req_lib_ckpt_sectioniterationinitialize); 
+	req_lib_ckpt_sectioniterationinitialize.header.id = MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE;
+	req_lib_ckpt_sectioniterationinitialize.sectionsChosen = sectionsChosen;
+	req_lib_ckpt_sectioniterationinitialize.expirationTime = expirationTime;
+	memcpy (&req_lib_ckpt_sectioniterationinitialize.checkpointName,
 		&ckptCheckpointInstance->checkpointName, sizeof (SaNameT));
 
 	pthread_mutex_lock (&ckptSectionIterationInstance->response_mutex);
 
 	error = saSendRetry (ckptSectionIterationInstance->response_fd,
-		&req_lib_ckpt_sectioniteratorinitialize,
-		sizeof (struct req_lib_ckpt_sectioniteratorinitialize),
+		&req_lib_ckpt_sectioniterationinitialize,
+		sizeof (struct req_lib_ckpt_sectioniterationinitialize),
 		MSG_NOSIGNAL);
 
 	if (error != SA_AIS_OK) {
@@ -1228,15 +1228,15 @@ saCkptSectionIterationInitialize (
 	}
 
 	error = saRecvRetry (ckptSectionIterationInstance->response_fd,
-		&res_lib_ckpt_sectioniteratorinitialize,
-		sizeof (struct res_lib_ckpt_sectioniteratorinitialize),
+		&res_lib_ckpt_sectioniterationinitialize,
+		sizeof (struct res_lib_ckpt_sectioniterationinitialize),
 		MSG_WAITALL | MSG_NOSIGNAL);
 
 	pthread_mutex_unlock (&ckptSectionIterationInstance->response_mutex);
 
 	saHandleInstancePut (&ckptSectionIterationHandleDatabase, *sectionIterationHandle);
 
-	return (error == SA_AIS_OK ? res_lib_ckpt_sectioniteratorinitialize.header.error : error);
+	return (error == SA_AIS_OK ? res_lib_ckpt_sectioniterationinitialize.header.error : error);
 
 error_put_destroy:
 	saHandleInstancePut (&ckptSectionIterationHandleDatabase, *sectionIterationHandle);