mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-26 03:21:44 +03:00
lxc: Replacing default strings definitions by g_autofree statement
There are a lots of strings being handled inside some LXC functions. They can be moved to g_autofree to avoid declaring a return value to get proper code cleanups. This commit is changing functions from lxc_{controller,cgroup,fuse} only. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
This commit is contained in:
parent
a97e17c4e2
commit
5b82f7f3af
@ -55,8 +55,7 @@ static int virLXCCgroupSetupCpusetTune(virDomainDefPtr def,
|
||||
virCgroupPtr cgroup,
|
||||
virBitmapPtr nodemask)
|
||||
{
|
||||
int ret = -1;
|
||||
char *mask = NULL;
|
||||
g_autofree char *mask = NULL;
|
||||
virDomainNumatuneMemMode mode;
|
||||
|
||||
if (def->placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO &&
|
||||
@ -67,21 +66,17 @@ static int virLXCCgroupSetupCpusetTune(virDomainDefPtr def,
|
||||
|
||||
if (virDomainNumatuneGetMode(def->numa, -1, &mode) < 0 ||
|
||||
mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT) {
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (virDomainNumatuneMaybeFormatNodeset(def->numa, nodemask,
|
||||
&mask, -1) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
if (mask && virCgroupSetCpusetMems(cgroup, mask) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(mask);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -803,8 +803,7 @@ static int virLXCControllerGetNumadAdvice(virLXCControllerPtr ctrl,
|
||||
virBitmapPtr *mask)
|
||||
{
|
||||
virBitmapPtr nodemask = NULL;
|
||||
char *nodeset = NULL;
|
||||
int ret = -1;
|
||||
g_autofree char *nodeset = NULL;
|
||||
|
||||
/* Get the advisory nodeset from numad if 'placement' of
|
||||
* either <vcpu> or <numatune> is 'auto'.
|
||||
@ -813,20 +812,17 @@ static int virLXCControllerGetNumadAdvice(virLXCControllerPtr ctrl,
|
||||
nodeset = virNumaGetAutoPlacementAdvice(virDomainDefGetVcpus(ctrl->def),
|
||||
ctrl->def->mem.cur_balloon);
|
||||
if (!nodeset)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
VIR_DEBUG("Nodeset returned from numad: %s", nodeset);
|
||||
|
||||
if (virBitmapParse(nodeset, &nodemask, VIR_DOMAIN_CPUMASK_LEN) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
*mask = nodemask;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(nodeset);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1435,9 +1431,8 @@ virLXCControllerSetupUsernsMap(virDomainIdMapEntryPtr map,
|
||||
*/
|
||||
static int virLXCControllerSetupUserns(virLXCControllerPtr ctrl)
|
||||
{
|
||||
char *uid_map = NULL;
|
||||
char *gid_map = NULL;
|
||||
int ret = -1;
|
||||
g_autofree char *uid_map = NULL;
|
||||
g_autofree char *gid_map = NULL;
|
||||
|
||||
/* User namespace is disabled for container */
|
||||
if (ctrl->def->idmap.nuidmap == 0) {
|
||||
@ -1451,28 +1446,23 @@ static int virLXCControllerSetupUserns(virLXCControllerPtr ctrl)
|
||||
if (virLXCControllerSetupUsernsMap(ctrl->def->idmap.uidmap,
|
||||
ctrl->def->idmap.nuidmap,
|
||||
uid_map) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
gid_map = g_strdup_printf("/proc/%d/gid_map", ctrl->initpid);
|
||||
|
||||
if (virLXCControllerSetupUsernsMap(ctrl->def->idmap.gidmap,
|
||||
ctrl->def->idmap.ngidmap,
|
||||
gid_map) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(uid_map);
|
||||
VIR_FREE(gid_map);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int virLXCControllerSetupDev(virLXCControllerPtr ctrl)
|
||||
{
|
||||
char *mount_options = NULL;
|
||||
char *opts = NULL;
|
||||
char *dev = NULL;
|
||||
int ret = -1;
|
||||
g_autofree char *mount_options = NULL;
|
||||
g_autofree char *opts = NULL;
|
||||
g_autofree char *dev = NULL;
|
||||
|
||||
VIR_DEBUG("Setting up /dev/ for container");
|
||||
|
||||
@ -1489,24 +1479,18 @@ static int virLXCControllerSetupDev(virLXCControllerPtr ctrl)
|
||||
opts = g_strdup_printf("mode=755,size=65536%s", mount_options);
|
||||
|
||||
if (virFileSetupDev(dev, opts) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
if (lxcContainerChown(ctrl->def, dev) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(opts);
|
||||
VIR_FREE(mount_options);
|
||||
VIR_FREE(dev);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl)
|
||||
{
|
||||
size_t i;
|
||||
int ret = -1;
|
||||
char *path = NULL;
|
||||
g_autofree char *path = NULL;
|
||||
const struct {
|
||||
int maj;
|
||||
int min;
|
||||
@ -1522,7 +1506,7 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl)
|
||||
};
|
||||
|
||||
if (virLXCControllerSetupDev(ctrl) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
/* Populate /dev/ with a few important bits */
|
||||
for (i = 0; i < G_N_ELEMENTS(devs); i++) {
|
||||
@ -1535,19 +1519,14 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl)
|
||||
virReportSystemError(errno,
|
||||
_("Failed to make device %s"),
|
||||
path);
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (lxcContainerChown(ctrl->def, path) < 0)
|
||||
goto cleanup;
|
||||
|
||||
VIR_FREE(path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(path);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -2113,10 +2092,9 @@ virLXCControllerSetupPrivateNS(void)
|
||||
static int
|
||||
virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl)
|
||||
{
|
||||
char *mount_options = NULL;
|
||||
char *opts = NULL;
|
||||
char *devpts = NULL;
|
||||
int ret = -1;
|
||||
g_autofree char *mount_options = NULL;
|
||||
g_autofree char *opts = NULL;
|
||||
g_autofree char *devpts = NULL;
|
||||
gid_t ptsgid = 5;
|
||||
|
||||
VIR_DEBUG("Setting up private /dev/pts");
|
||||
@ -2131,7 +2109,7 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl)
|
||||
virReportSystemError(errno,
|
||||
_("Failed to make path %s"),
|
||||
devpts);
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ctrl->def->idmap.ngidmap)
|
||||
@ -2150,26 +2128,20 @@ virLXCControllerSetupDevPTS(virLXCControllerPtr ctrl)
|
||||
virReportSystemError(errno,
|
||||
_("Failed to mount devpts on %s"),
|
||||
devpts);
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (access(ctrl->devptmx, R_OK) < 0) {
|
||||
virReportSystemError(ENOSYS, "%s",
|
||||
_("Kernel does not support private devpts"));
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((lxcContainerChown(ctrl->def, ctrl->devptmx) < 0) ||
|
||||
(lxcContainerChown(ctrl->def, devpts) < 0))
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(opts);
|
||||
VIR_FREE(devpts);
|
||||
VIR_FREE(mount_options);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -2190,8 +2162,7 @@ virLXCControllerSetupConsoles(virLXCControllerPtr ctrl,
|
||||
char **containerTTYPaths)
|
||||
{
|
||||
size_t i;
|
||||
int ret = -1;
|
||||
char *ttyHostPath = NULL;
|
||||
g_autofree char *ttyHostPath = NULL;
|
||||
|
||||
for (i = 0; i < ctrl->nconsoles; i++) {
|
||||
VIR_DEBUG("Opening tty on private %s", ctrl->devptmx);
|
||||
@ -2200,20 +2171,17 @@ virLXCControllerSetupConsoles(virLXCControllerPtr ctrl,
|
||||
&containerTTYPaths[i], &ttyHostPath) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Failed to allocate tty"));
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Change the owner of tty device to the root user of container */
|
||||
if (lxcContainerChown(ctrl->def, ttyHostPath) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
VIR_FREE(ttyHostPath);
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(ttyHostPath);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,8 +42,7 @@ static const char *fuse_meminfo_path = "/meminfo";
|
||||
|
||||
static int lxcProcGetattr(const char *path, struct stat *stbuf)
|
||||
{
|
||||
int res;
|
||||
char *mempath = NULL;
|
||||
g_autofree char *mempath = NULL;
|
||||
struct stat sb;
|
||||
struct fuse_context *context = fuse_get_context();
|
||||
virDomainDefPtr def = (virDomainDefPtr)context->private_data;
|
||||
@ -51,16 +50,12 @@ static int lxcProcGetattr(const char *path, struct stat *stbuf)
|
||||
memset(stbuf, 0, sizeof(struct stat));
|
||||
mempath = g_strdup_printf("/proc/%s", path);
|
||||
|
||||
res = 0;
|
||||
|
||||
if (STREQ(path, "/")) {
|
||||
stbuf->st_mode = S_IFDIR | 0755;
|
||||
stbuf->st_nlink = 2;
|
||||
} else if (STREQ(path, fuse_meminfo_path)) {
|
||||
if (stat(mempath, &sb) < 0) {
|
||||
res = -errno;
|
||||
goto cleanup;
|
||||
}
|
||||
if (stat(mempath, &sb) < 0)
|
||||
return -errno;
|
||||
|
||||
stbuf->st_uid = def->idmap.uidmap ? def->idmap.uidmap[0].target : 0;
|
||||
stbuf->st_gid = def->idmap.gidmap ? def->idmap.gidmap[0].target : 0;
|
||||
@ -73,12 +68,10 @@ static int lxcProcGetattr(const char *path, struct stat *stbuf)
|
||||
stbuf->st_ctime = sb.st_ctime;
|
||||
stbuf->st_mtime = sb.st_mtime;
|
||||
} else {
|
||||
res = -ENOENT;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(mempath);
|
||||
return res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int lxcProcReaddir(const char *path, void *buf,
|
||||
@ -129,7 +122,7 @@ static int lxcProcReadMeminfo(char *hostpath, virDomainDefPtr def,
|
||||
{
|
||||
int res;
|
||||
FILE *fd = NULL;
|
||||
char *line = NULL;
|
||||
g_autofree char *line = NULL;
|
||||
size_t n;
|
||||
struct virLXCMeminfo meminfo;
|
||||
virBuffer buffer = VIR_BUFFER_INITIALIZER;
|
||||
@ -231,7 +224,6 @@ static int lxcProcReadMeminfo(char *hostpath, virDomainDefPtr def,
|
||||
memcpy(buf, virBufferCurrentContent(new_meminfo), res);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(line);
|
||||
virBufferFreeAndReset(new_meminfo);
|
||||
VIR_FORCE_FCLOSE(fd);
|
||||
return res;
|
||||
@ -244,7 +236,7 @@ static int lxcProcRead(const char *path G_GNUC_UNUSED,
|
||||
struct fuse_file_info *fi G_GNUC_UNUSED)
|
||||
{
|
||||
int res = -ENOENT;
|
||||
char *hostpath = NULL;
|
||||
g_autofree char *hostpath = NULL;
|
||||
struct fuse_context *context = NULL;
|
||||
virDomainDefPtr def = NULL;
|
||||
|
||||
@ -258,7 +250,6 @@ static int lxcProcRead(const char *path G_GNUC_UNUSED,
|
||||
res = lxcProcHostRead(hostpath, buf, size, offset);
|
||||
}
|
||||
|
||||
VIR_FREE(hostpath);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user