On Tue, 2010-09-21 at 11:59 +0200, Nikola Pajkovsky wrote:
DD_CLOSE_ON_OPEN_ERR flag indicate to free all memory allocated by
dd_init() which is passed to dd_opendir().
dd_opendir fails when dump_dir does not exist.
VERB1 log(_("Unable to open debug dump '%s'"), pDebugDumpDir);
is all removed because there is error_msg("'%s' does not exist",
dd->dd_dir); in dd_opendir().
...which sometimes we don't want to print
(example: crash dump directory trimming code
running concurrently. Second process may try to delete
a directory which is already gone. it should not complain
that it is missing.)
Can you add a DD_FAIL_QUIETLY flag to make it possible
to suppress that message?
@@ -863,35 +856,32 @@ static mw_result_t
SavePackageDescriptionToDebugDump(
}
struct dump_dir *dd = dd_init();
- if (dd_opendir(dd, pDebugDumpDir))
+ if (!dd_opendir(dd, pDebugDumpDir, DD_CLOSE_ON_OPEN_ERR))
+ return MW_ERROR;
+
+ if (rpm_pkg)
{
- if (rpm_pkg)
- {
- dd_save_text(dd, FILENAME_PACKAGE, rpm_pkg);
- free(rpm_pkg);
- }
+ dd_save_text(dd, FILENAME_PACKAGE, rpm_pkg);
+ free(rpm_pkg);
+ }
- if (dsc)
- {
- dd_save_text(dd, FILENAME_DESCRIPTION, dsc);
- free(dsc);
- }
+ if (dsc)
+ {
+ dd_save_text(dd, FILENAME_DESCRIPTION, dsc);
+ free(dsc);
+ }
- if (component)
- {
- dd_save_text(dd, FILENAME_COMPONENT, component);
- free(component);
- }
+ if (component)
+ {
+ dd_save_text(dd, FILENAME_COMPONENT, component);
+ free(component);
+ }
- if (!remote)
- dd_save_text(dd, FILENAME_HOSTNAME, host);
+ if (!remote)
+ dd_save_text(dd, FILENAME_HOSTNAME, host);
- dd_close(dd);
- return MW_OK;
- }
dd_close(dd);
-
- return MW_ERROR;
+ return MW_OK;
Can you make the change in this hunk less invasive
(that is, without if() statement restructuring)?
My other unrelated patch which I just posted touches
the same place.
Simpler change will help me to port the patch...
Looks good to me.
--
vda