|
|
08425f |
WHATS_NEW_DM | 1 +
|
|
|
08425f |
libdm/ioctl/libdm-iface.c | 10 +++++++++-
|
|
|
08425f |
2 files changed, 10 insertions(+), 1 deletion(-)
|
|
|
08425f |
|
|
|
08425f |
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
|
|
|
08425f |
index 581cd42..bf08130 100644
|
|
|
08425f |
--- a/WHATS_NEW_DM
|
|
|
08425f |
+++ b/WHATS_NEW_DM
|
|
|
08425f |
@@ -1,5 +1,6 @@
|
|
|
08425f |
Version 1.02.141 -
|
|
|
08425f |
===============================
|
|
|
08425f |
+ Fix reusing of dm_task structure for status reading (used by dmeventd).
|
|
|
08425f |
dm_get_status_raid() handle better some incosistent md statuses.
|
|
|
08425f |
Accept truncated files in calls to dm_stats_update_regions_from_fd().
|
|
|
08425f |
Restore Warning by 5% increment when thin-pool is over 80% (1.02.138).
|
|
|
08425f |
diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c
|
|
|
08425f |
index cb3e8dc..65e75f6 100644
|
|
|
08425f |
--- a/libdm/ioctl/libdm-iface.c
|
|
|
08425f |
+++ b/libdm/ioctl/libdm-iface.c
|
|
|
08425f |
@@ -467,7 +467,7 @@ static void _dm_zfree_dmi(struct dm_ioctl *dmi)
|
|
|
08425f |
}
|
|
|
08425f |
}
|
|
|
08425f |
|
|
|
08425f |
-void dm_task_destroy(struct dm_task *dmt)
|
|
|
08425f |
+static void _dm_task_free_targets(struct dm_task *dmt)
|
|
|
08425f |
{
|
|
|
08425f |
struct target *t, *n;
|
|
|
08425f |
|
|
|
08425f |
@@ -478,6 +478,12 @@ void dm_task_destroy(struct dm_task *dmt)
|
|
|
08425f |
dm_free(t);
|
|
|
08425f |
}
|
|
|
08425f |
|
|
|
08425f |
+ dmt->head = dmt->tail = NULL;
|
|
|
08425f |
+}
|
|
|
08425f |
+
|
|
|
08425f |
+void dm_task_destroy(struct dm_task *dmt)
|
|
|
08425f |
+{
|
|
|
08425f |
+ _dm_task_free_targets(dmt);
|
|
|
08425f |
_dm_zfree_dmi(dmt->dmi.v4);
|
|
|
08425f |
dm_free(dmt->dev_name);
|
|
|
08425f |
dm_free(dmt->mangled_dev_name);
|
|
|
08425f |
@@ -652,6 +658,8 @@ static int _unmarshal_status(struct dm_task *dmt, struct dm_ioctl *dmi)
|
|
|
08425f |
uint32_t i;
|
|
|
08425f |
struct dm_target_spec *spec;
|
|
|
08425f |
|
|
|
08425f |
+ _dm_task_free_targets(dmt);
|
|
|
08425f |
+
|
|
|
08425f |
for (i = 0; i < dmi->target_count; i++) {
|
|
|
08425f |
spec = (struct dm_target_spec *) outptr;
|
|
|
08425f |
if (!dm_task_add_target(dmt, spec->sector_start,
|
|
|
08425f |
--
|
|
|
08425f |
1.8.3.1
|
|
|
08425f |
|