1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

pre-release

This commit is contained in:
Alasdair Kergon 2010-11-08 19:37:40 +00:00
parent 262ff6e9d3
commit ab3b542a18
5 changed files with 23 additions and 19 deletions

View File

@ -1 +1 @@
2.02.76(2)-cvs (2010-10-25)
2.02.76(2)-cvs (2010-11-08)

View File

@ -1 +1 @@
1.02.57-cvs (2010-10-25)
1.02.57-cvs (2010-11-08)

View File

@ -1,16 +1,16 @@
Version 2.02.76 -
Version 2.02.76 - 8th November 2010
===================================
Clarify error messages when activation fails due to activation filter use.
Add initial script VolumeGroup.ocf for pacemaker support.
Fix regex optimiser not to ignore RHS of OR nodes in _find_leftmost_common.
Add pacemaker script VolumeGroup.ocf with configure --enable-ocf.
Import make.tmpl into include/ Makefile.
Fix handling of online filesystem resize (using new fsadm return code).
Add DIAGNOSTICS section to fsadm man page.
Modify fsadm to return different status code for check of mounted filesystem.
Update VG metadata only once in vgchange when making multiple changes.
Allow independent vgchange arguments to be used together.
Automatically unmount invalidated snapshots in dmeventd.
Suppress some superfluous messages from clang static analysis.
Fix a deadlock caused by double close in clvmd.
Add dmeventd -R to restart dmeventd without losing monitoring state. (2.02.75)
Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area.
Use static for internal _align_chunk() and _new_chunk() from pool-fast.c.
Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.

View File

@ -1,5 +1,7 @@
Version 1.02.57
Version 1.02.57 - 8th November 2010
===================================
Fix regex optimiser not to ignore RHS of OR nodes in _find_leftmost_common.
Add dmeventd -R to restart dmeventd without losing monitoring state. (1.02.56)
Fix memory leak of field_id in _output_field function.
Allocate buffer for reporting functions dynamically to support long outputs.

View File

@ -184,8 +184,12 @@ static void child_init_signal(int status)
write(child_pipe[1], &status, sizeof(status));
close(child_pipe[1]);
}
if (status)
exit(status);
}
static __attribute__((noreturn)) void child_init_signal_and_exit(int status)
{
child_init_signal(status);
exit(status);
}
static void safe_close(int *fd)
@ -420,8 +424,10 @@ int main(int argc, char *argv[])
potential clients will block rather than error if we are running
but the cluster is not ready yet */
local_sock = open_local_sock();
if (local_sock < 0)
child_init_signal(DFAIL_LOCAL_SOCK);
if (local_sock < 0) {
child_init_signal_and_exit(DFAIL_LOCAL_SOCK);
/* NOTREACHED */
}
/* Set up signal handlers, USR1 is for cluster change notifications (in cman)
USR2 causes child threads to exit.
@ -498,10 +504,8 @@ int main(int argc, char *argv[])
if (!clops) {
DEBUGLOG("Can't initialise cluster interface\n");
log_error("Can't initialise cluster interface\n");
child_init_signal(DFAIL_CLUSTER_IF);
#ifdef __clang__
__builtin_unreachable();
#endif
child_init_signal_and_exit(DFAIL_CLUSTER_IF);
/* NOTREACHED */
}
DEBUGLOG("Cluster ready, doing some more initialisation\n");
@ -517,10 +521,8 @@ int main(int argc, char *argv[])
/* Add the local socket to the list */
newfd = malloc(sizeof(struct local_client));
if (!newfd) {
child_init_signal(DFAIL_MALLOC);
#ifdef __clang__
__builtin_unreachable();
#endif
child_init_signal_and_exit(DFAIL_MALLOC);
/* NOTREACHED */
}
newfd->fd = local_sock;