mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
Some libdevmapper-event interface changes.
This commit is contained in:
parent
931d24a4b1
commit
02059c81e7
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.19 -
|
Version 2.02.19 -
|
||||||
===================================
|
===================================
|
||||||
|
Some libdevmapper-event interface changes.
|
||||||
Report dmeventd mirror monitoring status.
|
Report dmeventd mirror monitoring status.
|
||||||
Fix dmeventd mirror status line processing.
|
Fix dmeventd mirror status line processing.
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ static int _remove_failed_devices(const char *device)
|
|||||||
return (r == 1) ? 0 : -1;
|
return (r == 1) ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void process_event(struct dm_task *dmt, enum dm_event_type event)
|
void process_event(struct dm_task *dmt, enum dm_event_mask event)
|
||||||
{
|
{
|
||||||
void *next = NULL;
|
void *next = NULL;
|
||||||
uint64_t start, length;
|
uint64_t start, length;
|
||||||
|
@ -164,7 +164,7 @@ static int _remove_failed_devices(const char *device)
|
|||||||
return (r == 1) ? 0 : -1;
|
return (r == 1) ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void process_event(struct dm_task *dmt, enum dm_event_type event)
|
void process_event(struct dm_task *dmt, enum dm_event_mask event)
|
||||||
{
|
{
|
||||||
void *next = NULL;
|
void *next = NULL;
|
||||||
uint64_t start, length;
|
uint64_t start, length;
|
||||||
|
@ -393,7 +393,7 @@ static int _target_registered(struct lv_segment *seg, int *pending)
|
|||||||
char *dso, *name;
|
char *dso, *name;
|
||||||
struct logical_volume *lv;
|
struct logical_volume *lv;
|
||||||
struct volume_group *vg;
|
struct volume_group *vg;
|
||||||
enum dm_event_type events = 0;
|
enum dm_event_mask evmask = 0;
|
||||||
|
|
||||||
lv = seg->lv;
|
lv = seg->lv;
|
||||||
vg = lv->vg;
|
vg = lv->vg;
|
||||||
@ -407,27 +407,27 @@ static int _target_registered(struct lv_segment *seg, int *pending)
|
|||||||
if (!(name = build_dm_name(vg->cmd->mem, vg->name, lv->name, NULL)))
|
if (!(name = build_dm_name(vg->cmd->mem, vg->name, lv->name, NULL)))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
if (!dm_event_get_registered_device(&dso, &name, &events, 0))
|
if (!dm_event_get_registered_device(&dso, &name, &evmask, 0))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (events & DM_EVENT_REGISTRATION_PENDING) {
|
if (evmask & DM_EVENT_REGISTRATION_PENDING) {
|
||||||
*pending = 1;
|
*pending = 1;
|
||||||
events &= ~DM_EVENT_REGISTRATION_PENDING;
|
evmask &= ~DM_EVENT_REGISTRATION_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
return events;
|
return evmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME This gets run while suspended and performs banned operations. */
|
/* FIXME This gets run while suspended and performs banned operations. */
|
||||||
/* FIXME Merge these two functions */
|
/* FIXME Merge these two functions */
|
||||||
static int _target_register_events(struct cmd_context *cmd,
|
static int _target_register_events(struct cmd_context *cmd,
|
||||||
struct lv_segment *seg,
|
struct lv_segment *seg,
|
||||||
int events)
|
int evmask)
|
||||||
{
|
{
|
||||||
char *dso, *name;
|
char *dso, *name;
|
||||||
struct logical_volume *lv;
|
struct logical_volume *lv;
|
||||||
struct volume_group *vg;
|
struct volume_group *vg;
|
||||||
struct dm_event_handler *handler;
|
struct dm_event_handler *dmevh;
|
||||||
|
|
||||||
lv = seg->lv;
|
lv = seg->lv;
|
||||||
vg = lv->vg;
|
vg = lv->vg;
|
||||||
@ -440,17 +440,17 @@ static int _target_register_events(struct cmd_context *cmd,
|
|||||||
if (!(name = build_dm_name(cmd->mem, vg->name, lv->name, NULL)))
|
if (!(name = build_dm_name(cmd->mem, vg->name, lv->name, NULL)))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
if (!(handler = dm_event_handler_create()))
|
if (!(dmevh = dm_event_handler_create()))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
dm_event_handler_set_dso(handler, dso);
|
dm_event_handler_set_dso(dmevh, dso);
|
||||||
dm_event_handler_set_name(handler, name);
|
dm_event_handler_set_devname(dmevh, name);
|
||||||
dm_event_handler_set_events(handler, DM_EVENT_ALL_ERRORS);
|
dm_event_handler_set_event_mask(dmevh, DM_EVENT_ALL_ERRORS);
|
||||||
if (!dm_event_register(handler)) {
|
if (!dm_event_register_handler(dmevh)) {
|
||||||
dm_event_handler_destroy(handler);
|
dm_event_handler_destroy(dmevh);
|
||||||
return_0;
|
return_0;
|
||||||
}
|
}
|
||||||
dm_event_handler_destroy(handler);
|
dm_event_handler_destroy(dmevh);
|
||||||
|
|
||||||
log_info("Registered %s for events", name);
|
log_info("Registered %s for events", name);
|
||||||
|
|
||||||
@ -459,13 +459,13 @@ static int _target_register_events(struct cmd_context *cmd,
|
|||||||
|
|
||||||
static int _target_unregister_events(struct cmd_context *cmd,
|
static int _target_unregister_events(struct cmd_context *cmd,
|
||||||
struct lv_segment *seg,
|
struct lv_segment *seg,
|
||||||
int events)
|
int evmask)
|
||||||
{
|
{
|
||||||
char *dso;
|
char *dso;
|
||||||
char *name;
|
char *name;
|
||||||
struct logical_volume *lv;
|
struct logical_volume *lv;
|
||||||
struct volume_group *vg;
|
struct volume_group *vg;
|
||||||
struct dm_event_handler *handler;
|
struct dm_event_handler *dmevh;
|
||||||
|
|
||||||
lv = seg->lv;
|
lv = seg->lv;
|
||||||
vg = lv->vg;
|
vg = lv->vg;
|
||||||
@ -477,17 +477,17 @@ static int _target_unregister_events(struct cmd_context *cmd,
|
|||||||
if (!(name = build_dm_name(cmd->mem, vg->name, lv->name, NULL)))
|
if (!(name = build_dm_name(cmd->mem, vg->name, lv->name, NULL)))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
if (!(handler = dm_event_handler_create()))
|
if (!(dmevh = dm_event_handler_create()))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
dm_event_handler_set_dso(handler, dso);
|
dm_event_handler_set_dso(dmevh, dso);
|
||||||
dm_event_handler_set_name(handler, name);
|
dm_event_handler_set_devname(dmevh, name);
|
||||||
dm_event_handler_set_events(handler, DM_EVENT_ALL_ERRORS);
|
dm_event_handler_set_event_mask(dmevh, DM_EVENT_ALL_ERRORS);
|
||||||
if (!dm_event_unregister(handler)) {
|
if (!dm_event_unregister_handler(dmevh)) {
|
||||||
dm_event_handler_destroy(handler);
|
dm_event_handler_destroy(dmevh);
|
||||||
return_0;
|
return_0;
|
||||||
}
|
}
|
||||||
dm_event_handler_destroy(handler);
|
dm_event_handler_destroy(dmevh);
|
||||||
|
|
||||||
log_info("Unregistered %s for events", name);
|
log_info("Unregistered %s for events", name);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user