rpms/openais/devel revision-1173.patch, NONE, 1.1 revision-1179.patch, NONE, 1.1 revision-1180.patch, NONE, 1.1 revision-1181.patch, NONE, 1.1 revision-1182.patch, NONE, 1.1 revision-1183.patch, NONE, 1.1 revision-1184.patch, NONE, 1.1 revision-1185.patch, NONE, 1.1 revision-1186.patch, NONE, 1.1 revision-1187.patch, NONE, 1.1 revision-1188.patch, NONE, 1.1 revision-1189.patch, NONE, 1.1 revision-1190.patch, NONE, 1.1 revision-1191.patch, NONE, 1.1 revision-1192.patch, NONE, 1.1 revision-1193.patch, NONE, 1.1 openais.spec, 1.9, 1.10
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Aug 8 16:19:34 UTC 2006
Author: sdake
Update of /cvs/dist/rpms/openais/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv19724/devel
Modified Files:
openais.spec
Added Files:
revision-1173.patch revision-1179.patch revision-1180.patch
revision-1181.patch revision-1182.patch revision-1183.patch
revision-1184.patch revision-1185.patch revision-1186.patch
revision-1187.patch revision-1188.patch revision-1189.patch
revision-1190.patch revision-1191.patch revision-1192.patch
revision-1193.patch
Log Message:
auto-import openais-0.80-1.1 on branch devel from openais-0.80-1.1.src.rpm
revision-1173.patch:
sync.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE revision-1173.patch ---
Index: exec/sync.c
===================================================================
--- exec/sync.c (revision 1155)
+++ exec/sync.c (revision 1173)
@@ -411,7 +411,7 @@
/*
* This sync is complete so activate and start next service sync
*/
- if (sync_callbacks.sync_activate) {
+ if (barrier_completed && sync_callbacks.sync_activate) {
sync_callbacks.sync_activate ();
log_printf (LOG_LEVEL_NOTICE,
revision-1179.patch:
saCkpt.h | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE revision-1179.patch ---
Index: include/saCkpt.h
===================================================================
--- include/saCkpt.h (revision 1173)
+++ include/saCkpt.h (revision 1179)
@@ -176,7 +176,7 @@
SaAisErrorT
saCkptCheckpointUnlink (
- SaCkptCheckpointHandleT checkpointHandle,
+ SaCkptHandleT ckptHandle,
const SaNameT *checkpointName);
SaAisErrorT
revision-1180.patch:
print.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
wthread.c | 25 +++++++++++-
wthread.h | 2 -
3 files changed, 124 insertions(+), 27 deletions(-)
--- NEW FILE revision-1180.patch ---
Index: exec/wthread.c
===================================================================
--- exec/wthread.c (revision 1179)
+++ exec/wthread.c (revision 1180)
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
*
* All rights reserved.
*
@@ -75,8 +76,15 @@
&worker_thread->new_work_mutex);
}
+ /*
+ * We unlock then relock the new_work_mutex to allow the
+ * worker function to execute and also allow new work to be
+ * added to the work queue
+ */
data_for_worker_fn = queue_item_get (&worker_thread->queue);
+ pthread_mutex_unlock (&worker_thread->new_work_mutex);
worker_thread->worker_thread_group->worker_fn (orf_token_mcast_thread_state, data_for_worker_fn);
+ pthread_mutex_lock (&worker_thread->new_work_mutex);
queue_item_remove (&worker_thread->queue);
pthread_mutex_unlock (&worker_thread->new_work_mutex);
pthread_mutex_lock (&worker_thread->done_work_mutex);
@@ -109,8 +117,14 @@
}
for (i = 0; i < threads; i++) {
- worker_thread_group->threads[i].thread_state = malloc (thread_state_size);
- thread_state_constructor (worker_thread_group->threads[i].thread_state);
+ if (thread_state_size) {
+ worker_thread_group->threads[i].thread_state = malloc (thread_state_size);
+ } else {
+ worker_thread_group->threads[i].thread_state = NULL;
+ }
+ if (thread_state_constructor) {
+ thread_state_constructor (worker_thread_group->threads[i].thread_state);
+ }
worker_thread_group->threads[i].worker_thread_group = worker_thread_group;
pthread_mutex_init (&worker_thread_group->threads[i].new_work_mutex, NULL);
pthread_cond_init (&worker_thread_group->threads[i].new_work_cond, NULL);
@@ -128,7 +142,7 @@
return (0);
}
-void worker_thread_group_work_add (
+int worker_thread_group_work_add (
struct worker_thread_group *worker_thread_group,
void *item)
{
@@ -138,9 +152,14 @@
worker_thread_group->last_scheduled = schedule;
pthread_mutex_lock (&worker_thread_group->threads[schedule].new_work_mutex);
+ if (queue_is_full (&worker_thread_group->threads[schedule].queue)) {
+ pthread_mutex_unlock (&worker_thread_group->threads[schedule].new_work_mutex);
+ return (-1);
+ }
queue_item_add (&worker_thread_group->threads[schedule].queue, item);
pthread_cond_signal (&worker_thread_group->threads[schedule].new_work_cond);
pthread_mutex_unlock (&worker_thread_group->threads[schedule].new_work_mutex);
+ return (0);
}
void worker_thread_group_wait (
Index: exec/wthread.h
===================================================================
--- exec/wthread.h (revision 1179)
+++ exec/wthread.h (revision 1180)
@@ -51,7 +51,7 @@
void (*thread_state_constructor)(void *),
void (*worker_fn)(void *thread_state, void *work_item));
-extern void worker_thread_group_work_add (
+extern int worker_thread_group_work_add (
struct worker_thread_group *worker_thread_group,
void *item);
Index: exec/print.c
===================================================================
--- exec/print.c (revision 1179)
+++ exec/print.c (revision 1180)
@@ -1,12 +1,13 @@
/*
* Copyright (c) 2002-2004 MontaVista Software, Inc.
+ * Copyright (c) 2006 Ericsson AB.
*
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
+ * original work, Add worker thread to avoid blocking syslog
*
- * Copyright (c) 2006 Ericsson AB.
- * Author: Hans Feldt
- * Description: Added support for runtime installed loggers, tags tracing,
- * and file & line printing.
+ * Author: Hans Feldt
+ * Added support for runtime installed loggers, tags tracing,
+ * and file & line printing.
*
* All rights reserved.
*
@@ -53,16 +54,26 @@
#endif
#include <syslog.h>
#include <stdlib.h>
+#include <pthread.h>
#include "print.h"
#include "totemip.h"
#include "../include/saAis.h"
#include "mainconfig.h"
+#include "wthread.h"
static unsigned int logmode = LOG_MODE_BUFFER | LOG_MODE_STDERR | LOG_MODE_SYSLOG;
+
static char *logfile = 0;
+
static int log_setup_called;
+static pthread_mutex_t log_mode_mutex;
+
+static struct worker_thread_group log_thread_group;
+
+static unsigned int dropped_log_entries = 0;
+
#ifndef MAX_LOGGERS
#define MAX_LOGGERS 32
#endif
@@ -70,8 +81,7 @@
static FILE *log_file_fp = 0;
-struct log_entry
-{
+struct log_entry {
char *file;
int line;
int level;
@@ -80,8 +90,15 @@
};
static struct log_entry *head;
+
static struct log_entry *tail;
+struct log_data {
+ unsigned int syslog_pos;
+ unsigned int level;
+ char *log_string;
+};
+
static int logger_init (const char *ident, int tags, int level, int mode)
{
int i;
@@ -131,9 +148,31 @@
vsnprintf(entry->str, sizeof(entry->str), format, ap);
}
+static void log_printf_worker_fn (void *thread_data, void *work_item)
+{
+ struct log_data *log_data = (struct log_data *)work_item;
+
+ /*
+ * Output the log data
+ */
+ if (logmode & LOG_MODE_FILE && log_file_fp != 0) {
+ fprintf (log_file_fp, "%s", log_data->log_string);
+ fflush (log_file_fp);
+ }
+ if (logmode & LOG_MODE_STDERR) {
+ fprintf (stderr, "%s", log_data->log_string);
+ fflush (stdout);
+ }
+
+ if (logmode & LOG_MODE_SYSLOG) {
+ syslog (log_data->level, &log_data->log_string[log_data->syslog_pos]);
+ }
+ free (log_data->log_string);
+}
+
static void _log_printf (char *file, int line,
- int level, int id,
- char *format, va_list ap)
+ int level, int id,
+ char *format, va_list ap)
{
char newstring[4096];
char log_string[4096];
@@ -141,14 +180,18 @@
struct timeval tv;
int i = 0;
int len;
+ struct log_data log_data;
+ unsigned int res = 0;
assert (id < MAX_LOGGERS);
+ pthread_mutex_lock (&log_mode_mutex);
/*
** Buffer before log_setup() has been called.
*/
if (logmode & LOG_MODE_BUFFER) {
buffered_log_printf(file, line, level, format, ap);
+ pthread_mutex_unlock (&log_mode_mutex);
return;
}
@@ -165,7 +208,18 @@
} else {
sprintf (&newstring[i], "[%-5s] %s", loggers[id].ident, format);
}
- len = vsprintf (log_string, newstring, ap);
+ if (dropped_log_entries) {
+ /*
+ * Get rid of \n if there is one
+ */
+ if (newstring[strlen (newstring) - 1] == '\n') {
+ newstring[strlen (newstring) - 1] = '\0';
+ }
+ len = sprintf (log_string,
+ "%s - prior to this log entry, openais logger dropped '%d' messages because of overflow.", newstring, dropped_log_entries + 1);
+ } else {
+ len = vsprintf (log_string, newstring, ap);
+ }
/*
** add line feed if not done yet
@@ -176,20 +230,32 @@
}
/*
- * Output the log data
+ * Create work thread data
*/
- if (logmode & LOG_MODE_FILE && log_file_fp != 0) {
- fprintf (log_file_fp, "%s", log_string);
- fflush (log_file_fp);
+ log_data.syslog_pos = i;
+ log_data.level = level;
+ log_data.log_string = strdup (log_string);
+ if (log_data.log_string == NULL) {
+ goto drop_log_msg;
}
- if (logmode & LOG_MODE_STDERR) {
- fprintf (stderr, "%s", log_string);
+
+ if (log_setup_called) {
+ res = worker_thread_group_work_add (&log_thread_group, &log_data);
+ if (res == 0) {
+ dropped_log_entries = 0;
+ } else {
+ dropped_log_entries += 1;
+ }
+ } else {
+ log_printf_worker_fn (NULL, &log_data);
}
- fflush (stdout);
- if (logmode & LOG_MODE_SYSLOG) {
- syslog (level, &log_string[i]);
- }
+ pthread_mutex_unlock (&log_mode_mutex);
+ return;
+
+drop_log_msg:
+ dropped_log_entries++;
+ pthread_mutex_unlock (&log_mode_mutex);
}
int _log_init (const char *ident)
@@ -222,7 +288,9 @@
}
}
+ pthread_mutex_lock (&log_mode_mutex);
logmode = config->logmode;
+ pthread_mutex_unlock (&log_mode_mutex);
logfile = config->logfile;
if (config->logmode & LOG_MODE_SYSLOG) {
@@ -249,13 +317,23 @@
config->logger[i].level = LOG_LEVEL_INFO;
config->logger[i].tags |= TAG_LOG;
logger_init (config->logger[i].ident,
- config->logger[i].tags,
- config->logger[i].level,
- config->logger[i].mode);
+ config->logger[i].tags,
+ config->logger[i].level,
+ config->logger[i].mode);
}
log_setup_called = 1;
+ worker_thread_group_init (
+ &log_thread_group,
+ 1,
+ 1024,
+ sizeof (struct log_data),
+ 0,
+ NULL,
+ log_printf_worker_fn);
+
+
/*
** Flush what we have buffered
*/
revision-1181.patch:
ckpt-rd.c | 8 +++++---
ckpt-wr.c | 19 +------------------
2 files changed, 6 insertions(+), 21 deletions(-)
--- NEW FILE revision-1181.patch ---
Index: test/ckpt-wr.c
===================================================================
--- test/ckpt-wr.c (revision 1180)
+++ test/ckpt-wr.c (revision 1181)
@@ -67,7 +67,7 @@
.creationFlags = SA_CKPT_WR_ALL_REPLICAS,
.checkpointSize = 250000,
.retentionDuration = SA_TIME_ONE_SECOND * 60,
- .maxSections = 5,
+ .maxSections = 1,
.maxSectionSize = 250000,
.maxSectionIdSize = 10
};
@@ -130,23 +130,6 @@
do{
- error = saCkptCheckpointRead (checkpointHandle,
- ReadVectorElements,
- 1,
- &erroroneousVectorIndex);
- if (error != SA_AIS_OK) {
- if (error == SA_AIS_ERR_TRY_AGAIN) {
- continue;
- }
- return (0);
- }
-
- if (ReadVectorElements->dataBuffer == 0) {
- printf ("Default Checkpoint has no data\n");
- } else {
- count = atol((char *)ReadVectorElements->dataBuffer);
- }
-
count++;
sprintf((char*)&data, "%d",(int)count);
writeElement.sectionId = (SaCkptSectionIdT)SA_CKPT_DEFAULT_SECTION_ID;
Index: test/ckpt-rd.c
===================================================================
--- test/ckpt-rd.c (revision 1180)
+++ test/ckpt-rd.c (revision 1181)
@@ -52,7 +52,7 @@
int ckptinv;
void printSaNameT (SaNameT *name)
{
- int i;
+ int i = 0;
for (i = 0; i < name->length; i++) {
printf ("%c", name->value[i]);
@@ -90,12 +90,14 @@
SaAisErrorT error;
SaUint32T erroroneousVectorIndex = 0;
struct timespec delay;
+ int i = 0;
+
delay.tv_sec = 1;
delay.tv_nsec = 0;
-
-
error = saCkptInitialize (&ckptHandle, &callbacks, &version);
+ printf ("%s: initialize of checkpoint service\n",
+ get_test_output (error, SA_AIS_OK));
error = saCkptCheckpointOpen (ckptHandle,
&checkpointName,
revision-1182.patch:
evs.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE revision-1182.patch ---
Index: lib/evs.c
===================================================================
--- lib/evs.c (revision 1181)
+++ lib/evs.c (revision 1182)
@@ -1,4 +1,3 @@
-#define PROCESSOR_COUNT_MAX 32
/*
* vi: set autoindent tabstop=4 shiftwidth=4 :
@@ -46,6 +45,7 @@
#include <sys/socket.h>
#include <errno.h>
+#include "../exec/totem.h"
#include "../include/saAis.h"
#include "../include/evs.h"
#include "../include/ipc_evs.h"
revision-1183.patch:
totemnet.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE revision-1183.patch ---
Index: exec/totemnet.c
===================================================================
--- exec/totemnet.c (revision 1182)
+++ exec/totemnet.c (revision 1183)
@@ -1024,7 +1024,7 @@
memset(&mreq, 0, sizeof(mreq));
mreq.imr_multiaddr.s_addr = mcast_sin->sin_addr.s_addr;
mreq.imr_interface.s_addr = boundto_sin->sin_addr.s_addr;
- res = setsockopt (sockets->mcast_send, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+ res = setsockopt (sockets->mcast_recv, IPPROTO_IP, IP_ADD_MEMBERSHIP,
&mreq, sizeof (mreq));
if (res == -1) {
perror ("join ipv4 multicast group failed");
revision-1184.patch:
exec/clm.c | 12 ++++--------
include/mar_clm.h | 28 +++++++++++++++++++++++-----
2 files changed, 27 insertions(+), 13 deletions(-)
--- NEW FILE revision-1184.patch ---
Index: include/mar_clm.h
===================================================================
--- include/mar_clm.h (revision 1183)
+++ include/mar_clm.h (revision 1184)
@@ -1,9 +1,10 @@
/*
* Copyright (C) 2006 Red Hat, Inc.
+ * Copyright (C) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
*
* This software licensed under BSD license, the text of which follows:
*
@@ -35,6 +36,7 @@
#ifndef AIS_MAR_CLM_H_DEFINED
#define AIS_MAR_CLM_H_DEFINED
+#include "swab.h"
#include "saAis.h"
#include "saClm.h"
#include "mar_gen.h"
@@ -55,6 +57,12 @@
unsigned char value[MAR_CLM_MAX_ADDRESS_LENGTH] __attribute__((aligned(8)));
} mar_clm_node_address_t;
+static inline void swab_mar_clm_node_address_t(mar_clm_node_address_t *to_swab)
+{
+ swab_mar_uint16_t (&to_swab->length);
+ swab_mar_uint32_t (&to_swab->family);
+}
+
static inline void marshall_from_mar_clm_node_address_t (
SaClmNodeAddressT *dest,
mar_clm_node_address_t *src)
@@ -77,14 +85,24 @@
* Marshalling the SaClmClusterNodeT data structure
*/
typedef struct {
- unsigned int node_id __attribute__((aligned(8)));
+ mar_uint32_t node_id __attribute__((aligned(8)));
mar_clm_node_address_t node_address __attribute__((aligned(8)));
mar_name_t node_name __attribute__((aligned(8)));
- unsigned int member __attribute__((aligned(8)));
- unsigned long long boot_timestamp __attribute__((aligned(8)));
- unsigned long long initial_view_number __attribute__((aligned(8)));
+ mar_uint32_t member __attribute__((aligned(8)));
+ mar_uint64_t boot_timestamp __attribute__((aligned(8)));
+ mar_uint64_t initial_view_number __attribute__((aligned(8)));
} mar_clm_cluster_node_t;
+static inline void swab_mar_clm_cluster_node_t(mar_clm_cluster_node_t *to_swab)
+{
+ swab_mar_uint32_t (&to_swab->node_id);
+ swab_mar_uint32_t (&to_swab->member);
+ swab_mar_clm_node_address_t (&to_swab->node_address);
+ swab_mar_name_t (&to_swab->node_name);
+ swab_mar_uint64_t (&to_swab->boot_timestamp);
+ swab_mar_uint64_t (&to_swab->initial_view_number);
+}
+
static inline void marshall_to_mar_clm_cluster_node_t (
mar_clm_cluster_node_t *dest,
SaClmClusterNodeT *src)
Index: exec/clm.c
===================================================================
--- exec/clm.c (revision 1183)
+++ exec/clm.c (revision 1184)
@@ -1,10 +1,11 @@
/*
* Copyright (c) 2002-2006 MontaVista Software, Inc.
* Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (C) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
*
* This software licensed under BSD license, the text of which follows:
*
@@ -70,7 +71,6 @@
#include "ipc.h"
#include "mempool.h"
#include "service.h"
-#include "../include/swab.h"
#include "print.h"
enum clm_message_req_types {
@@ -575,12 +575,8 @@
{
struct req_exec_clm_nodejoin *node_join = msg;
- node_join->cluster_node.node_id = swab32(node_join->cluster_node.node_id);
- node_join->cluster_node.node_address.family = swab32(node_join->cluster_node.node_address.family);
- node_join->cluster_node.node_address.length = swab16(node_join->cluster_node.node_address.length);
- node_join->cluster_node.initial_view_number = swab64(node_join->cluster_node.initial_view_number);
- node_join->cluster_node.boot_timestamp = swab64(node_join->cluster_node.boot_timestamp);
-
+ swab_mar_req_header_t (&node_join->header);
+ swab_mar_clm_cluster_node_t (&node_join->cluster_node);
}
static void message_handler_req_exec_clm_nodejoin (
revision-1185.patch:
exec/cpg.c | 10 +++++++---
include/mar_cpg.h | 15 +++++++++++----
2 files changed, 18 insertions(+), 7 deletions(-)
--- NEW FILE revision-1185.patch ---
Index: include/mar_cpg.h
===================================================================
--- include/mar_cpg.h (revision 1184)
+++ include/mar_cpg.h (revision 1185)
@@ -1,10 +1,11 @@
/*
* Copyright (c) 2006 Red Hat, Inc.
+ * Author: Patrick Caulfield (pcaulfie at redhat.com)
*
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
* All rights reserved.
*
- * Author: Patrick Caulfield (pcaulfie at redhat.com)
- *
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
@@ -35,12 +36,18 @@
#define MAR_CPG_H_DEFINED
#include "cpg.h"
+#include "swab.h"
typedef struct {
- uint32_t length __attribute((aligned(8)));
- char value[CPG_MAX_NAME_LENGTH] __attribute((aligned(8)));
+ uint32_t length __attribute__((aligned(8)));
+ char value[CPG_MAX_NAME_LENGTH] __attribute__((aligned(8)));
} mar_cpg_name_t;
+static inline void swab_mar_cpg_name_t (mar_cpg_name_t *to_swab)
+{
+ swab_mar_uint32_t (&to_swab->length);
+}
+
static inline void marshall_from_mar_cpg_name_t (
struct cpg_name *dest,
mar_cpg_name_t *src)
Index: exec/cpg.c
===================================================================
--- exec/cpg.c (revision 1184)
+++ exec/cpg.c (revision 1185)
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
@@ -610,7 +611,7 @@
struct req_exec_cpg_procjoin *req_exec_cpg_procjoin = (struct req_exec_cpg_procjoin *)msg;
req_exec_cpg_procjoin->pid = swab32(req_exec_cpg_procjoin->pid);
- req_exec_cpg_procjoin->group_name.length = swab32(req_exec_cpg_procjoin->group_name.length);
+ swab_mar_cpg_name_t (&req_exec_cpg_procjoin->group_name);
req_exec_cpg_procjoin->reason = swab32(req_exec_cpg_procjoin->reason);
}
@@ -619,9 +620,11 @@
mar_res_header_t *res = (mar_res_header_t *)msg;
struct join_list_entry *jle = (struct join_list_entry *)(msg + sizeof(mar_res_header_t));
+ /* XXX shouldn't mar_res_header be swabbed? */
+
while ((void*)jle < msg + res->size) {
jle->pid = swab32(jle->pid);
- jle->group_name.length = swab32(jle->group_name.length);
+ swab_mar_cpg_name_t (&jle->group_name);
jle++;
}
}
@@ -630,9 +633,10 @@
{
struct req_exec_cpg_mcast *req_exec_cpg_mcast = (struct req_exec_cpg_mcast *)msg;
+ swab_mar_req_header_t (&req_exec_cpg_mcast->header);
+ swab_mar_cpg_name_t (&req_exec_cpg_mcast->group_name);
req_exec_cpg_mcast->pid = swab32(req_exec_cpg_mcast->pid);
req_exec_cpg_mcast->msglen = swab32(req_exec_cpg_mcast->msglen);
- req_exec_cpg_mcast->group_name.length = swab32(req_exec_cpg_mcast->group_name.length);
}
revision-1186.patch:
evs.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
--- NEW FILE revision-1186.patch ---
Index: exec/evs.c
===================================================================
--- exec/evs.c (revision 1185)
+++ exec/evs.c (revision 1186)
@@ -1,11 +1,12 @@
/*
* Copyright (c) 2004-2006 MontaVista Software, Inc.
* Copyright (c) 2006 Red Hat, Inc.
+ * Author: Steven Dake (sdake at mvista.com)
*
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
* All rights reserved.
*
- * Author: Steven Dake (sdake at mvista.com)
- *
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
@@ -55,6 +56,7 @@
#include "../include/list.h"
#include "../include/queue.h"
#include "../lcr/lcr_comp.h"
+#include "../include/swab.h"
#include "totempg.h"
#include "main.h"
#include "ipc.h"
@@ -465,6 +467,11 @@
static void req_exec_mcast_endian_convert (void *msg)
{
+ struct req_exec_evs_mcast *req_exec_evs_mcast =
+ (struct req_exec_evs_mcast *)msg;
+ req_exec_evs_mcast->group_entries =
+ swab32 (req_exec_evs_mcast->group_entries);
+ req_exec_evs_mcast->msg_len = swab32 (req_exec_evs_mcast->msg_len);
}
static void message_handler_req_exec_mcast (
revision-1187.patch:
evt.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
--- NEW FILE revision-1187.patch ---
Index: exec/evt.c
===================================================================
--- exec/evt.c (revision 1186)
+++ exec/evt.c (revision 1187)
@@ -2,6 +2,8 @@
* Copyright (c) 2004-2006 Mark Haverkamp
* Copyright (c) 2004-2006 Open Source Development Lab
*
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
* All rights reserved.
*
* This software licensed under BSD license, the text of which follows:
@@ -2017,11 +2019,11 @@
* led_svr_channel_handle and led_lib_channel_handle.
*/
- evt->led_chan_name.length = swab16(evt->led_chan_name.length);
+ swab_mar_name_t (&evt->led_chan_name);
evt->led_chan_unlink_id = swab64(evt->led_chan_unlink_id);
evt->led_event_id = swab64(evt->led_event_id);
evt->led_sub_id = swab32(evt->led_sub_id);
- evt->led_publisher_name.length = swab32(evt->led_publisher_name.length);
+ swab_mar_name_t (&evt->led_publisher_name);
evt->led_retention_time = swab64(evt->led_retention_time);
evt->led_publish_time = swab64(evt->led_publish_time);
evt->led_user_data_offset = swab32(evt->led_user_data_offset);
@@ -3601,14 +3603,13 @@
switch (cpkt->chc_op) {
case EVT_OPEN_CHAN_OP:
- cpkt->u.chc_chan.ocr_name.length =
- swab16(cpkt->u.chc_chan.ocr_name.length);
+ swab_mar_name_t (&cpkt->u.chc_chan.ocr_name);
cpkt->u.chc_chan.ocr_serial_no = swab64(cpkt->u.chc_chan.ocr_serial_no);
break;
case EVT_UNLINK_CHAN_OP:
case EVT_CLOSE_CHAN_OP:
- cpkt->u.chcu.chcu_name.length = swab16(cpkt->u.chcu.chcu_name.length);
+ swab_mar_name_t (&cpkt->u.chcu.chcu_name);
cpkt->u.chcu.chcu_unlink_id = swab64(cpkt->u.chcu.chcu_unlink_id);
break;
@@ -3623,8 +3624,7 @@
break;
case EVT_OPEN_COUNT:
- cpkt->u.chc_set_opens.chc_chan_name.length =
- swab16(cpkt->u.chc_set_opens.chc_chan_name.length);
+ swab_mar_name_t (&cpkt->u.chc_set_opens.chc_chan_name);
cpkt->u.chc_set_opens.chc_open_count =
swab32(cpkt->u.chc_set_opens.chc_open_count);
break;
revision-1188.patch:
lcr_ifact.c | 21 ++++++++-------------
1 files changed, 8 insertions(+), 13 deletions(-)
--- NEW FILE revision-1188.patch ---
Index: lcr/lcr_ifact.c
===================================================================
--- lcr/lcr_ifact.c (revision 1187)
+++ lcr/lcr_ifact.c (revision 1188)
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2006 Steven Dake (sdake at mvista.com)
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* This software licensed under BSD license, the text of which follows:
*
@@ -32,6 +33,7 @@
#include <dlfcn.h>
#include <dirent.h>
#include <errno.h>
+#include <string.h>
#include <unistd.h>
#include <fnmatch.h>
#include "lcr_comp.h"
@@ -177,28 +179,21 @@
{
char *ld_library_path;
char *my_ld_library_path;
- char *p_s;
- unsigned int i;
- unsigned int len;
+ char *p_s, *ptrptr;
ld_library_path = getenv ("LD_LIBRARY_PATH");
if (ld_library_path == NULL) {
return;
}
my_ld_library_path = strdup (ld_library_path);
- if (my_ld_library_path == 0) {
+ if (my_ld_library_path == NULL) {
return;
}
- len = strlen (my_ld_library_path) + 1;
-
- for (i = 0, p_s = my_ld_library_path, i = 0; i < len; i++) {
- if (my_ld_library_path[i] == ':' || my_ld_library_path[i] == '\0') {
- my_ld_library_path[i]='\0';
-//printf ("path list %x path list entries %d\n", path_list, path_list_entries);
- path_list[path_list_entries++] = strdup (p_s);
- p_s = &my_ld_library_path[i];
- }
+ p_s = strtok_r (my_ld_library_path, ":", &ptrptr);
+ while (p_s != NULL) {
+ path_list[path_list_entries++] = strdup (p_s);
+ p_s = strtok_r (NULL, ":", &ptrptr);
}
free (my_ld_library_path);
revision-1189.patch:
vsf_ykd.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
--- NEW FILE revision-1189.patch ---
Index: exec/vsf_ykd.c
===================================================================
--- exec/vsf_ykd.c (revision 1188)
+++ exec/vsf_ykd.c (revision 1189)
@@ -1,11 +1,12 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
* Copyright (c) 2006 Red Hat, Inc.
+ * Author: Steven Dake (sdake at mvista.com)
*
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
* All rights reserved.
*
- * Author: Steven Dake (sdake at mvista.com)
- *
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
@@ -32,6 +33,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
+
#include <assert.h>
#include <pwd.h>
#include <grp.h>
@@ -302,10 +304,12 @@
{
int i;
- ykd_session->member_list_entries = swab32 (ykd_session->member_list_entries);
+ ykd_session->member_list_entries =
+ swab32 (ykd_session->member_list_entries);
ykd_session->session_id = swab32 (ykd_session->session_id);
for (i = 0; i < ykd_session->member_list_entries; i++) {
-// TODO totemip_copy_endian_convert (&ykd_session->member_list[i], &ykd_session->member_list[i]);
+ ykd_session->member_list[i] =
+ swab32 (ykd_session->member_list[i]);
}
}
@@ -355,7 +359,8 @@
return;
}
#endif
- if (endian_conversion_required) {
+ if (endian_conversion_required &&
+ (iovec->iov_len > sizeof (struct ykd_header))) {
ykd_state_endian_convert ((struct ykd_state *)msg_state);
}
@@ -384,6 +389,7 @@
switch (ykd_mode) {
case YKD_MODE_SENDSTATE:
+ assert (iovec->iov_len > sizeof (struct ykd_header));
/*
* Copy state information for the sending processor
*/
revision-1190.patch:
exec/totempg.c | 1 +
include/swab.h | 20 +-------------------
2 files changed, 2 insertions(+), 19 deletions(-)
--- NEW FILE revision-1190.patch ---
Index: include/swab.h
===================================================================
--- include/swab.h (revision 1189)
+++ include/swab.h (revision 1190)
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
@@ -29,26 +30,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <assert.h>
-#include <sys/mman.h>
#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <sys/un.h>
-#include <sys/ioctl.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <sched.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/poll.h>
#define swab16(x) \
({ \
Index: exec/totempg.c
===================================================================
--- exec/totempg.c (revision 1189)
+++ exec/totempg.c (revision 1190)
@@ -88,6 +88,7 @@
#include <string.h>
#include <assert.h>
#include <pthread.h>
+#include <errno.h>
#include "../include/hdb.h"
#include "../include/list.h"
revision-1191.patch:
amf.c | 12
amfcomp.c | 8
ckpt.c | 566 +++++++++++++++++++-------------------
evt.c | 888 ++++++++++++++++++++++++++++++-------------------------------
ipc.c | 9
lck.c | 82 ++---
main.c | 2
print.h | 9
totem.h | 8
totemnet.c | 7
totempg.c | 3
totemrrp.c | 4
totemsrp.c | 7
13 files changed, 813 insertions(+), 792 deletions(-)
--- NEW FILE revision-1191.patch ---
Index: exec/totemnet.c
===================================================================
--- exec/totemnet.c (revision 1190)
+++ exec/totemnet.c (revision 1191)
@@ -1,10 +1,12 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
* Author: Steven Dake (sdake at mvista.com)
- *
+
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
@@ -32,7 +34,6 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-
#include <assert.h>
#include <pthread.h>
#include <sys/mman.h>
@@ -137,7 +138,7 @@
int totemnet_log_level_debug;
- void (*totemnet_log_printf) (char *file, int line, int level, char *format, ...);
+ void (*totemnet_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
totemnet_handle handle;
Index: exec/print.h
===================================================================
--- exec/print.h (revision 1190)
+++ exec/print.h (revision 1191)
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2002-2004 MontaVista Software, Inc.
- *
* Author: Steven Dake (sdake at mvista.com)
*
* Copyright (c) 2006 Ericsson AB.
@@ -8,6 +7,8 @@
* Description: Added support for runtime installed loggers, tags tracing,
* and file & line printing.
*
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
* All rights reserved.
*
* This software licensed under BSD license, the text of which follows:
@@ -93,9 +94,9 @@
*/
static int logger_identifier __attribute__((unused));
-extern void internal_log_printf (char *file, int line, int priority, char *format, ...);
-extern void internal_log_printf2 (char *file, int line, int level, int id, char *format, ...);
-extern void trace (char *file, int line, int tag, int id, char *format, ...);
+extern void internal_log_printf (char *file, int line, int priority, char *format, ...) __attribute__((format(printf, 4, 5)));
+extern void internal_log_printf2 (char *file, int line, int level, int id, char *format, ...) __attribute__((format(printf, 5, 6)));
+extern void trace (char *file, int line, int tag, int id, char *format, ...) __attribute__((format(printf, 5, 6)));
extern void log_flush(void);
#define LEVELMASK 0x07 /* 3 bits */
Index: exec/ipc.c
===================================================================
--- exec/ipc.c (revision 1190)
+++ exec/ipc.c (revision 1191)
@@ -155,6 +155,7 @@
void *message)
{
SaAisErrorT error = SA_AIS_ERR_ACCESS;
+ size_t cinfo = (size_t)conn_info;
mar_req_lib_response_init_t *req_lib_response_init = (mar_req_lib_response_init_t *)message;
mar_res_lib_response_init_t res_lib_response_init;
@@ -165,7 +166,7 @@
res_lib_response_init.header.size = sizeof (mar_res_lib_response_init_t);
res_lib_response_init.header.id = MESSAGE_RES_INIT;
res_lib_response_init.header.error = error;
- res_lib_response_init.conn_info = (unsigned long long)conn_info;
+ res_lib_response_init.conn_info = (mar_uint64_t)cinfo;
openais_conn_send_response (
conn_info,
@@ -184,6 +185,7 @@
void *message)
{
SaAisErrorT error = SA_AIS_ERR_ACCESS;
+ size_t cinfo;
mar_req_lib_dispatch_init_t *req_lib_dispatch_init = (mar_req_lib_dispatch_init_t *)message;
mar_res_lib_dispatch_init_t res_lib_dispatch_init;
struct conn_info *msg_conn_info;
@@ -195,10 +197,11 @@
else
error = SA_AIS_OK;
- conn_info->conn_info_partner = (struct conn_info *)req_lib_dispatch_init->conn_info;
+ cinfo = (size_t)req_lib_dispatch_init->conn_info;
+ conn_info->conn_info_partner = (struct conn_info *)cinfo;
conn_info->conn_info_partner->shared_mutex = conn_info->shared_mutex;
- msg_conn_info = (struct conn_info *)req_lib_dispatch_init->conn_info;
+ msg_conn_info = (struct conn_info *)cinfo;
msg_conn_info->conn_info_partner = conn_info;
if (error == SA_AIS_OK) {
Index: exec/totempg.c
===================================================================
--- exec/totempg.c (revision 1190)
+++ exec/totempg.c (revision 1191)
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2003-2005 MontaVista Software, Inc.
* Copyright (c) 2005 OSDL.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
@@ -150,7 +151,7 @@
static int totempg_log_level_warning;
static int totempg_log_level_notice;
static int totempg_log_level_debug;
-static void (*totempg_log_printf) (char *file, int line, int level, char *format, ...) = NULL;
+static void (*totempg_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5))) = NULL;
struct totem_config *totempg_totem_config;
Index: exec/amfcomp.c
===================================================================
--- exec/amfcomp.c (revision 1190)
+++ exec/amfcomp.c (revision 1191)
@@ -1130,7 +1130,7 @@
SaAisErrorT amf_comp_register (struct amf_comp *comp)
{
- TRACE2("Exec comp register '%s'", &comp->name.value);
+ TRACE2("Exec comp register '%s'", comp->name.value);
if (comp->saAmfCompPresenceState == SA_AMF_PRESENCE_RESTARTING) {
comp_presence_state_set (comp, SA_AMF_PRESENCE_INSTANTIATED);
@@ -1150,7 +1150,7 @@
{
struct res_lib_amf_componenterrorreport res_lib;
- TRACE2("Exec comp error report '%s'", &comp->name.value);
+ TRACE2("Exec comp error report '%s'", comp->name.value);
if (amf_su_is_local (comp->su)) {
res_lib.header.size = sizeof (struct res_lib_amf_componenterrorreport);
@@ -1171,7 +1171,7 @@
void amf_comp_healthcheck_tmo (
struct amf_comp *comp, struct amf_healthcheck *healthcheck)
{
- TRACE2("Exec healthcheck tmo for '%s'", &comp->name.value);
+ TRACE2("Exec healthcheck tmo for '%s'", comp->name.value);
/* report to SU and let it handle the problem */
report_error_suspected (comp, healthcheck->recommendedRecovery);
@@ -1190,7 +1190,7 @@
*/
void amf_comp_cleanup_completed (struct amf_comp *comp)
{
- TRACE2("Exec CLC cleanup completed for '%s'", &comp->name.value);
+ TRACE2("Exec CLC cleanup completed for '%s'", comp->name.value);
/* Set all CSI's confirmed HA state to unknown */
amf_comp_foreach_csi_assignment (comp, clear_ha_state);
Index: exec/evt.c
===================================================================
--- exec/evt.c (revision 1190)
+++ exec/evt.c (revision 1191)
@@ -72,18 +72,18 @@
*
* esi_version: Version that the library is running.
* esi_open_chans: list of open channels associated with this
- * instance. Used to clean up any data left
- * allocated when the finalize is done.
- * (event_svr_channel_open.eco_instance_entry)
+ * instance. Used to clean up any data left
+ * allocated when the finalize is done.
+ * (event_svr_channel_open.eco_instance_entry)
* esi_events: list of pending events to be delivered on this
- * instance (struct chan_event_list.cel_entry)
+ * instance (struct chan_event_list.cel_entry)
* esi_queue_blocked: non-zero if the delivery queue got too full
- * and we're blocking new messages until we
- * drain some of the queued messages.
+ * and we're blocking new messages until we
+ * drain some of the queued messages.
* esi_nevents: Number of events in events lists to be sent.
* esi_hdb: Handle data base for open channels on this
- * instance. Used for a quick lookup of
- * open channel data from a lib api message.
+ * instance. Used for a quick lookup of
[...4213 lines suppressed...]
/*
* Add pending locks to granted list
*/
- list_p = &resource->pr_pending_list_head.next;
+ list_p = resource->pr_pending_list_head.next;
list_del (&resource->pr_pending_list_head);
list_add_tail (list_p,
&resource->pr_granted_list_head);
@@ -1087,7 +1087,7 @@
req_exec_lck_resourcelock->req_lib_lck_resourcelock.async_call;
resource_lock->invocation =
req_exec_lck_resourcelock->req_lib_lck_resourcelock.invocation;
-
+
/*
* Waiter callback source
*/
@@ -1106,7 +1106,7 @@
req_exec_lck_resourcelock->resource_handle);
assert (resource_cleanup);
-
+
list_add (&resource_lock->resource_cleanup_list,
&resource_cleanup->resource_lock_list_head);
@@ -1115,7 +1115,7 @@
*/
if (resource_lock->lock_status != SA_LCK_LOCK_NO_STATUS) {
/*
- * If lock granted or denied, deliver callback or
+ * If lock granted or denied, deliver callback or
* response to library for non-async calls
*/
lock_response_deliver (
@@ -1153,8 +1153,8 @@
struct req_exec_lck_resourceunlock *req_exec_lck_resourceunlock = (struct req_exec_lck_resourceunlock *)message;
struct res_lib_lck_resourceunlock res_lib_lck_resourceunlock;
struct res_lib_lck_resourceunlockasync res_lib_lck_resourceunlockasync;
- struct resource *resource = 0;
- struct resource_lock *resource_lock = 0;
+ struct resource *resource = NULL;
+ struct resource_lock *resource_lock = NULL;
SaAisErrorT error = SA_AIS_OK;
log_printf (LOG_LEVEL_NOTICE, "EXEC request: saLckResourceUnlock %s\n",
@@ -1243,7 +1243,7 @@
if (resource == 0) {
goto error_exit;
}
-
+
error_exit:
if (message_source_is_local(&req_exec_lck_lockpurge->source)) {
// lck_resource_cleanup_remove (req_exec_lck_lockpurge->source.conn,
@@ -1278,7 +1278,7 @@
memcpy (&req_exec_lck_resourceopen.resource_name,
&req_lib_lck_resourceopen->lockResourceName,
sizeof (SaNameT));
-
+
req_exec_lck_resourceopen.open_flags = req_lib_lck_resourceopen->resourceOpenFlags;
req_exec_lck_resourceopen.async_call = 0;
req_exec_lck_resourceopen.invocation = 0;
@@ -1392,7 +1392,7 @@
memcpy (&req_exec_lck_resourcelock.req_lib_lck_resourcelock,
req_lib_lck_resourcelock,
sizeof (struct req_lib_lck_resourcelock));
-
+
req_exec_lck_resourcelock.resource_handle = req_lib_lck_resourcelock->resourceHandle;
req_exec_lck_resourcelock.async_call = 0;
req_exec_lck_resourcelock.invocation = 0;
@@ -1425,7 +1425,7 @@
memcpy (&req_exec_lck_resourcelock.req_lib_lck_resourcelock,
req_lib_lck_resourcelock,
sizeof (struct req_lib_lck_resourcelock));
-
+
req_exec_lck_resourcelock.resource_handle = req_lib_lck_resourcelock->resourceHandle;
req_exec_lck_resourcelock.async_call = 1;
req_exec_lck_resourcelock.invocation = req_lib_lck_resourcelock->invocation;
@@ -1521,7 +1521,7 @@
memcpy (&req_exec_lck_lockpurge.req_lib_lck_lockpurge,
req_lib_lck_lockpurge,
sizeof (struct req_lib_lck_lockpurge));
-
+
iovecs[0].iov_base = (char *)&req_exec_lck_lockpurge;
iovecs[0].iov_len = sizeof (req_exec_lck_lockpurge);
Index: exec/totemrrp.c
===================================================================
--- exec/totemrrp.c (revision 1190)
+++ exec/totemrrp.c (revision 1191)
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
* Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
@@ -33,7 +34,6 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-
#include <assert.h>
#include <pthread.h>
#include <sys/mman.h>
@@ -194,7 +194,7 @@
int totemrrp_log_level_debug;
- void (*totemrrp_log_printf) (char *file, int line, int level, char *format, ...);
+ void (*totemrrp_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
totemrrp_handle handle;
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c (revision 1190)
+++ exec/totemsrp.c (revision 1191)
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2003-2006 MontaVista Software, Inc.
* Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
* All rights reserved.
*
@@ -423,7 +424,7 @@
int totemsrp_log_level_debug;
- void (*totemsrp_log_printf) (char *file, int line, int level, char *format, ...);
+ void (*totemsrp_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
enum memb_state memb_state;
@@ -1350,7 +1351,7 @@
struct totemsrp_instance *instance = (struct totemsrp_instance *)data;
log_printf (instance->totemsrp_log_level_notice,
- "The token was lost in state %d from timer %x\n", instance->memb_state, data);
+ "The token was lost in state %d from timer %p\n", instance->memb_state, data);
switch (instance->memb_state) {
case MEMB_STATE_OPERATIONAL:
totemrrp_iface_check (instance->totemrrp_handle);
@@ -2798,7 +2799,7 @@
return;
}
log_printf (instance->totemsrp_log_level_notice,
- "Storing new sequence id for ring %d\n", commit_token->ring_id.seq);
+ "Storing new sequence id for ring %llx\n", commit_token->ring_id.seq);
//assert (fd > 0);
res = write (fd, &commit_token->ring_id.seq, sizeof (unsigned long long));
assert (res == sizeof (unsigned long long));
Index: exec/main.c
===================================================================
--- exec/main.c (revision 1190)
+++ exec/main.c (revision 1191)
@@ -218,7 +218,7 @@
struct group *group;
group = getgrnam (main_config->group);
if (group == 0) {
- log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' group is not found in /etc/group, please read the documentation.\n", group);
+ log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' group is not found in /etc/group, please read the documentation.\n", group->gr_name);
openais_exit_error (AIS_DONE_GID_DETERMINE);
}
gid_valid = group->gr_gid;
Index: exec/totem.h
===================================================================
--- exec/totem.h (revision 1190)
+++ exec/totem.h (revision 1191)
@@ -1,10 +1,12 @@
/*
* Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
*
+ * Author: Steven Dake (sdake at mvista.com)
+ *
* All rights reserved.
*
- * Author: Steven Dake (sdake at mvista.com)
- *
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
@@ -70,7 +72,7 @@
};
struct totem_logging_configuration {
- void (*log_printf) (char *, int, int, char *, ...);
+ void (*log_printf) (char *, int, int, char *, ...) __attribute__((format(printf, 4, 5)));
int log_level_security;
int log_level_error;
int log_level_warning;
revision-1192.patch:
ckpt.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
--- NEW FILE revision-1192.patch ---
Index: exec/ckpt.c
===================================================================
--- exec/ckpt.c (revision 1191)
+++ exec/ckpt.c (revision 1192)
@@ -1351,7 +1351,7 @@
struct checkpoint *checkpoint;
if (list_empty(head)) {
- log_printf (LOG_LEVEL_NOTICE, "clean_checkpoint_list: List is empty \n");
+ log_printf (LOG_LEVEL_DEBUG, "clean_checkpoint_list: List is empty \n");
return;
}
@@ -1365,7 +1365,7 @@
* If checkpoint has been unlinked and this is the last reference, delete it
*/
if (checkpoint->unlinked && checkpoint->referenceCount == 1) { /*defect 1129*/
- log_printf (LOG_LEVEL_NOTICE,"clean_checkpoint_list: deallocating checkpoint %s.\n",
+ log_printf (LOG_LEVEL_DEBUG,"clean_checkpoint_list: deallocating checkpoint %s.\n",
checkpoint->name.value);
checkpoint_list = checkpoint_list->next;
checkpoint_release (checkpoint);
@@ -1373,7 +1373,7 @@
}
else if ((checkpoint->expired == 0) && (checkpoint->referenceCount == 1)) { /*defect 1192*/
- log_printf (LOG_LEVEL_NOTICE, "clean_checkpoint_list: Starting timer to release checkpoint %s.\n",
+ log_printf (LOG_LEVEL_DEBUG, "clean_checkpoint_list: Starting timer to release checkpoint %s.\n",
checkpoint->name.value);
openais_timer_delete (checkpoint->retention_timer);
openais_timer_add (
@@ -2562,7 +2562,7 @@
if (section_descriptor->section_size
> checkpoint_section->section_descriptor.section_size) {
- log_printf (LOG_LEVEL_NOTICE,
+ log_printf (LOG_LEVEL_DEBUG,
"recovery_section_create reallocating data. Present Size: %d, New Size: %d\n",
(int)checkpoint_section->section_descriptor.section_size,
(int)section_descriptor->section_size);
revision-1193.patch:
ckpt.c | 1 +
1 files changed, 1 insertion(+)
--- NEW FILE revision-1193.patch ---
Index: exec/ckpt.c
===================================================================
--- exec/ckpt.c (revision 1192)
+++ exec/ckpt.c (revision 1193)
@@ -1006,6 +1006,7 @@
sizeof(mar_ckpt_section_descriptor_t));
request_exec_sync_state.nodeid = this_ip->nodeid;
+ request_exec_sync_state.ckpt_id = checkpoint->ckpt_id;
for (i = 0; i < PROCESSOR_COUNT_MAX; i++) {
Index: openais.spec
===================================================================
RCS file: /cvs/dist/rpms/openais/devel/openais.spec,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- openais.spec 24 Jul 2006 01:45:46 -0000 1.9
+++ openais.spec 8 Aug 2006 16:19:31 -0000 1.10
@@ -1,12 +1,28 @@
Name: openais
Summary: The openais Standards-Based Cluster Framework executive and APIs
Version: 0.80
-Release: 1.0
+Release: 1.1
License: BSD
Group: System Environment/Base
URL: http://developer.osdl.org/dev/openais/
Source0: http://developer.osdl.org/dev/openais/downloads/openais-%{version}/openais-%{version}.tar.gz
Patch0: openais-0.76-defaultconfig.patch
+Patch1: revision-1173.patch
+Patch2: revision-1179.patch
+Patch3: revision-1180.patch
+Patch4: revision-1181.patch
+Patch5: revision-1182.patch
+Patch6: revision-1183.patch
+Patch7: revision-1184.patch
+Patch8: revision-1185.patch
+Patch9: revision-1186.patch
+Patch10: revision-1187.patch
+Patch11: revision-1188.patch
+Patch12: revision-1189.patch
+Patch13: revision-1190.patch
+Patch14: revision-1191.patch
+Patch15: revision-1192.patch
+Patch16: revision-1193.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x
Requires(pre): /usr/sbin/useradd
@@ -31,6 +47,22 @@
%prep
%setup -q -n openais-%{version}
%patch0 -p0
+%patch1 -p0
+%patch2 -p0
+%patch3 -p0
+%patch4 -p0
+%patch5 -p0
+%patch6 -p0
+%patch7 -p0
+%patch8 -p0
+%patch9 -p0
+%patch10 -p0
+%patch11 -p0
+%patch12 -p0
+%patch13 -p0
+%patch14 -p0
+%patch15 -p0
+%patch16 -p0
%build
# -O3 required for performance reasons
@@ -164,6 +196,9 @@
%{_mandir}/man3/evs_membership_get.3*
%changelog
+* Tue Aug 8 2006 Steven Dake <sdake at redhat.com> - 0.80-1.1
+- New process of tracking any revisions in the upstream stable branch.
+
* Sun Jul 23 2006 Steven Dake <sdake at redhat.com> - 0.80-1.0
- New upstream release.
- Added openais-cfgtool tool to install.
More information about the fedora-cvs-commits
mailing list