
On Thu, Mar 13, 2014 at 09:20:09AM +0000, qiaonuohan@cn.fujitsu.com wrote:
On 03/12/2014 11:04 PM, Martin Kletzander wrote:
diff --git c/src/test/test_driver.c i/src/test/test_driver.c index 39b3066..20f7bb3 100644 --- c/src/test/test_driver.c +++ i/src/test/test_driver.c @@ -2436,6 +2436,13 @@ static int testDomainCoreDumpWithFormat(virDomainPtr domain,
virCheckFlags(VIR_DUMP_CRASH, -1);
+ /* we don't support non-raw formats in test driver */ + if (dumpformat != VIR_DOMAIN_CORE_DUMP_FORMAT_RAW) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("kdump-compressed format is not supported here")); + goto cleanup; + } +
Moving the check for dumpformat here may jump to cleanup before privdom is initialize. So is it suitable moving this check before the check of flags? like
I just wanted to check and error out properly before doing the work and not after that, so that's ok, yes. Martin
<cut> @@ -2467,6 +2468,13 @@ static int testDomainCoreDump(virDomainPtr domain, goto cleanup; }
+ /* we don't support non-raw formats in test driver */ + if (dumpformat != VIR_DOMAIN_CORE_DUMP_FORMAT_RAW) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("kdump-compressed format is not supported here")); + goto cleanup; + } + if (flags & VIR_DUMP_CRASH) { testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_CRASHED); event = virDomainEventLifecycleNewFromObj(privdom,
<cut>
testDriverLock(privconn); privdom = virDomainObjListFindByName(privconn->domains, domain->name); @@ -2476,13 +2483,6 @@ static int testDomainCoreDumpWithFormat(virDomainPtr domain, } }
- /* dump the core of "domain" to file "to" */ - if (dumpformat != VIR_DUMP_FORMAT_RAW) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("kdump-compressed format is not supported here")); - goto cleanup; - } - ret = 0; cleanup: VIR_FORCE_CLOSE(fd); @@ -2497,7 +2497,8 @@ cleanup: static int testDomainCoreDump(virDomainPtr domain, const char *to, unsigned int flags) { - return testDomainCoreDumpWithFormat(domain, to, VIR_DUMP_FORMAT_RAW, flags); + return testDomainCoreDumpWithFormat(domain, to, + VIR_DOMAIN_CORE_DUMP_FORMAT_RAW, flags); }
static char *testDomainGetOSType(virDomainPtr dom ATTRIBUTE_UNUSED) { @@ -7350,6 +7351,7 @@ static virDriver testDriver = { .domainRestore = testDomainRestore, /* 0.3.2 */ .domainRestoreFlags = testDomainRestoreFlags, /* 0.9.4 */ .domainCoreDump = testDomainCoreDump, /* 0.3.2 */ + .domainCoreDumpWithFormat = testDomainCoreDumpWithFormat, /* 1.2.3 */ .domainSetVcpus = testDomainSetVcpus, /* 0.1.4 */ .domainSetVcpusFlags = testDomainSetVcpusFlags, /* 0.8.5 */ .domainGetVcpusFlags = testDomainGetVcpusFlags, /* 0.8.5 */
-- Regards Qiao Nuohan