diff -urNP vzctl-3.0.11.orig/include/dist.h vzctl-3.0.11/include/dist.h --- vzctl-3.0.11.orig/include/dist.h 2006-05-18 14:38:31.000000000 +0300 +++ vzctl-3.0.11/include/dist.h 2006-09-01 13:07:58.000000000 +0300 @@ -36,6 +36,7 @@ char *pkgset; char *pkgver; char *dist; + int sysfs; } tmpl_param; /* Data structure for distribution specific action scripts. diff -urNP vzctl-3.0.11.orig/include/vzctl_param.h vzctl-3.0.11/include/vzctl_param.h --- vzctl-3.0.11.orig/include/vzctl_param.h 2006-08-08 16:06:10.000000000 +0300 +++ vzctl-3.0.11/include/vzctl_param.h 2006-09-01 12:52:30.000000000 +0300 @@ -43,6 +43,7 @@ #define PARAM_PKGVER 11 #define PARAM_PKGSET 12 #define PARAM_OSTEMPLATE 13 +#define PARAM_SYSFS 200 #define PARAM_CPUWEIGHT 14 #define PARAM_CPULIMIT 15 @@ -117,5 +118,6 @@ #define PARAM_VEID 343 #define PARAM_NAME 344 + #define PARAM_LINE "e:p:f:t:i:l:k:a:b:n:x:h" #endif diff -urNP vzctl-3.0.11.orig/src/lib/config.c vzctl-3.0.11/src/lib/config.c --- vzctl-3.0.11.orig/src/lib/config.c 2006-08-08 16:06:10.000000000 +0300 +++ vzctl-3.0.11/src/lib/config.c 2006-09-01 13:51:51.000000000 +0300 @@ -100,6 +100,7 @@ /* template */ {"OSTEMPLATE", NULL, PARAM_OSTEMPLATE}, {"DEF_OSTEMPLATE", NULL, PARAM_DEF_OSTEMPLATE}, +{"SYSFS", NULL, PARAM_SYSFS}, /* CPU */ {"CPUUNITS", NULL, PARAM_CPUUNITS}, {"CPUUWEIGHT", NULL, PARAM_CPUWEIGHT}, @@ -1637,6 +1638,9 @@ return ERR_INVAL; vps_p->res.name.veid = int_id; break; + case PARAM_SYSFS: + ret = conf_parse_yesno(&vps_p->res.tmpl.sysfs, val, 1); + break; default: logger(10, 0, "Not handled parameter %d %s", id, val); break; @@ -2180,6 +2184,7 @@ MERGE_STR(pkgset) MERGE_STR(pkgver) MERGE_STR(dist) + MERGE_INT(sysfs); } static void merge_cpu(cpu_param *dst, cpu_param *src) diff -urNP vzctl-3.0.11.orig/src/lib/env.c vzctl-3.0.11/src/lib/env.c --- vzctl-3.0.11.orig/src/lib/env.c 2006-08-08 16:06:10.000000000 +0300 +++ vzctl-3.0.11/src/lib/env.c 2006-09-01 13:52:08.000000000 +0300 @@ -279,6 +279,9 @@ int len, i; char *name; + if (tmp->sysfs == YES) + return 1; + for (i = 0; name = sysfs_dists[i], name != NULL; i++) { len = strlen(name); if (tmp->ostmpl != NULL && @@ -329,6 +332,7 @@ env_create_data.data = &create_param; env_create_data.datalen = sizeof(create_param); #ifdef VE_FEATURE_SYSFS + if (sysfs_required(res)) create_param.feature_mask = VE_FEATURE_SYSFS; #endif