]> sourceware.org Git - lvm2.git/commitdiff
Initialize pool object for each row
authorZdenek Kabelac <zkabelac@redhat.com>
Tue, 25 Jan 2011 21:51:30 +0000 (21:51 +0000)
committerZdenek Kabelac <zkabelac@redhat.com>
Tue, 25 Jan 2011 21:51:30 +0000 (21:51 +0000)
Fix assert abort of dmsetup (when compiled with pool debug)
dmsetup splitname --nameprefixes --noheadings --rows gvg-a2

Move pool begin in the inner loop - otherwise it would using
already 'ended' pool object.

WHATS_NEW_DM
libdm/libdm-report.c

index 1bafc2b57411ffc4cec7b963fc01165747ef56ee..efe51b47549a9f03c556a07fb806a305649de1a9 100644 (file)
@@ -1,5 +1,6 @@
 Version 1.02.62 - 
 ===================================
+  Initialize pool object for each row in _output_as_rows().
 
 Version 1.02.61 - 10th January 2011
 ===================================
index 9b8e3c18ac9e0611d45ee4f55fbcfa79a1ed5a63..4f47c46ea33093293767b767b16393d1bc81ee0f 100644 (file)
@@ -1006,11 +1006,6 @@ static int _output_as_rows(struct dm_report *rh)
        struct dm_report_field *field;
        struct row *row;
 
-       if (!dm_pool_begin_object(rh->mem, 512)) {
-               log_error("dm_report: Unable to allocate output line");
-               return 0;
-       }
-
        dm_list_iterate_items(fp, &rh->field_props) {
                if (fp->flags & FLD_HIDDEN) {
                        dm_list_iterate_items(row, &rh->rows) {
@@ -1020,6 +1015,11 @@ static int _output_as_rows(struct dm_report *rh)
                        continue;
                }
 
+               if (!dm_pool_begin_object(rh->mem, 512)) {
+                       log_error("dm_report: Unable to allocate output line");
+                       return 0;
+               }
+
                if ((rh->flags & DM_REPORT_OUTPUT_HEADINGS)) {
                        if (!dm_pool_grow_object(rh->mem, rh->fields[fp->field_num].heading, 0)) {
                                log_error("dm_report: Failed to extend row for field name");
This page took 0.049984 seconds and 5 git commands to generate.