From 7eda8369fc375e89830373d0a28b409aa70a2070 Mon Sep 17 00:00:00 2001 From: Maxim Nestratov Date: Mon, 5 Dec 2016 16:11:15 +0300 Subject: [PATCH] vz: set boot from disk for CT only when there is no root filesystem Before, boot devices information for CTs was always empty and we didn't indicate that containers can boot from disk. Signed-off-by: Maxim Nestratov --- src/vz/vz_sdk.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 620eded0b9..089a4299e0 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1695,8 +1695,23 @@ prlsdkBootOrderCheck(PRL_HANDLE sdkdom, PRL_DEVICE_TYPE sdkType, int sdkIndex, return ret; } +static void +prlsdkConvertBootOrderCt(virDomainDefPtr def) +{ + size_t i; + for (i = 0; i < def->nfss; i++) { + + if (STREQ(def->fss[i]->dst, "/")) { + def->os.nBootDevs = 0; + return; + } + } + def->os.nBootDevs = 1; + def->os.bootDevs[0] = VIR_DOMAIN_BOOT_DISK; +} + static int -prlsdkConvertBootOrder(PRL_HANDLE sdkdom, virDomainDefPtr def) +prlsdkConvertBootOrderVm(PRL_HANDLE sdkdom, virDomainDefPtr def) { int ret = -1; PRL_RESULT pret; @@ -1855,8 +1870,12 @@ prlsdkLoadDomain(vzDriverPtr driver, goto error; /* depends on prlsdkAddDomainHardware */ - if (prlsdkConvertBootOrder(sdkdom, def) < 0) - goto error; + if (IS_CT(def)) { + prlsdkConvertBootOrderCt(def); + } else { + if (prlsdkConvertBootOrderVm(sdkdom, def) < 0) + goto error; + } pret = PrlVmCfg_GetEnvId(sdkdom, &envId); prlsdkCheckRetGoto(pret, error);