Version 1.02.54 -
================================
+ Remove superfluous NULL pointer tests before dm_free from dmeventd.
Assume dm-mod autoloading support is in kernel 2.6.36 and higher, not 2.6.35.
Fix udev rules to support udev database content generated by older rules.
Reinstate detection of inappropriate uevent with DISK_RO set and suppress it.
/* Free message memory. */
static void _free_message(struct message_data *message_data)
{
- if (message_data->id)
- dm_free(message_data->id);
- if (message_data->dso_name)
- dm_free(message_data->dso_name);
+ dm_free(message_data->id);
+ dm_free(message_data->dso_name);
- if (message_data->device_uuid)
- dm_free(message_data->device_uuid);
+ dm_free(message_data->device_uuid);
}
&& (thread->events)) ? thread->events : thread->
events | DM_EVENT_REGISTRATION_PENDING;
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
msg->size = dm_asprintf(&(msg->data), fmt, id, dso, dev, events);
struct thread_status *thread;
struct dm_event_daemon_message *msg = message_data->msg;
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
_lock_mutex();
if ((thread = _lookup_thread_status(message_data))) {
}
if (bytes != size) {
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
msg->data = NULL;
msg->size = 0;
}
if (!_client_write(fifos, &msg))
stack;
- if (msg.data)
- dm_free(msg.data);
+ dm_free(msg.data);
}
static void _cleanup_unused_threads(void)
static void _dm_event_handler_clear_dev_info(struct dm_event_handler *dmevh)
{
- if (dmevh->dev_name)
- dm_free(dmevh->dev_name);
- if (dmevh->uuid)
- dm_free(dmevh->uuid);
+ dm_free(dmevh->dev_name);
+ dm_free(dmevh->uuid);
dmevh->dev_name = dmevh->uuid = NULL;
dmevh->major = dmevh->minor = 0;
}
void dm_event_handler_destroy(struct dm_event_handler *dmevh)
{
_dm_event_handler_clear_dev_info(dmevh);
- if (dmevh->dso)
- dm_free(dmevh->dso);
+ dm_free(dmevh->dso);
dm_free(dmevh);
}
{
if (!path) /* noop */
return 0;
- if (dmevh->dso)
- dm_free(dmevh->dso);
+ dm_free(dmevh->dso);
dmevh->dso = dm_strdup(path);
if (!dmevh->dso)
}
if (bytes != size) {
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
msg->data = NULL;
}
do {
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
msg->data = 0;
if (!_daemon_read(fifos, msg)) {
ret = _daemon_talk(&fifos, msg, DM_EVENT_CMD_HELLO, 0, 0, 0, 0);
- if (msg->data)
- dm_free(msg->data);
+ dm_free(msg->data);
msg->data = 0;
if (!ret)
ret = 0;
}
- if (msg.data)
- dm_free(msg.data);
+ dm_free(msg.data);
dm_task_destroy(dmt);
ret = 0;
}
- if (msg.data)
- dm_free(msg.data);
+ dm_free(msg.data);
dm_task_destroy(dmt);
dm_task_destroy(dmt);
dmt = NULL;
- if (msg.data) {
- dm_free(msg.data);
- msg.data = NULL;
- }
+ dm_free(msg.data);
+ msg.data = NULL;
_dm_event_handler_clear_dev_info(dmevh);
dmevh->uuid = dm_strdup(reply_uuid);
dm_event_handler_set_dso(dmevh, reply_dso);
dm_event_handler_set_event_mask(dmevh, reply_mask);
- if (reply_dso) {
- dm_free(reply_dso);
- reply_dso = NULL;
- }
+ dm_free(reply_dso);
+ reply_dso = NULL;
- if (reply_uuid) {
- dm_free(reply_uuid);
- reply_uuid = NULL;
- }
+ dm_free(reply_uuid);
+ reply_uuid = NULL;
dmevh->dev_name = dm_strdup(dm_task_get_name(dmt));
if (!dmevh->dev_name) {
return ret;
fail:
- if (msg.data)
- dm_free(msg.data);
- if (reply_dso)
- dm_free(reply_dso);
- if (reply_uuid)
- dm_free(reply_uuid);
+ dm_free(msg.data);
+ dm_free(reply_dso);
+ dm_free(reply_uuid);
_dm_event_handler_clear_dev_info(dmevh);
if (dmt)
dm_task_destroy(dmt);
goto out_parse;
out:
- if (args)
- dm_free(args);
+ dm_free(args);
return r;
out_parse:
- if (args)
- dm_free(args);
+ dm_free(args);
syslog(LOG_ERR, "Unable to parse mirror status string.");
return ME_IGNORE;
}