[libvirt] [PATCH 1/2] LXC: hostdev: introduce lxcContainerSetupHostdevCapsMakePath
Daniel P. Berrange
berrange at redhat.com
Tue Jul 9 10:19:39 UTC 2013
On Tue, Jul 09, 2013 at 11:20:35AM +0800, Gao feng wrote:
> This helper function is used to create parent directroy for
> the hostdev which will be added to the container. if the
> parent directory of this hostdev doesn't exist, the mknod of
> the hostdev will fail.
>
> Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
> ---
> src/lxc/lxc_container.c | 17 +++++++++++++++++
> src/lxc/lxc_container.h | 2 ++
> 2 files changed, 19 insertions(+)
>
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index c8420db..b954107 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -1544,6 +1544,23 @@ cleanup:
> }
>
>
> +int lxcContainerSetupHostdevCapsMakePath(char *dev)
> +{
> + int ret = 0;
> + char *dir = NULL;
> +
> + if ((dir = strrchr(dev, '/'))) {
> + *dir = '\0';
Modifying arguments that are passed into a function is bad
practice, so I'm changing this to strdup the arg thus:
+int lxcContainerSetupHostdevCapsMakePath(const char *dev)
+{
+ int ret = -1;
+ char *dir, *tmp;
+
+ if (VIR_STRDUP(dir, dev) < 0)
+ return -1;
+
+ if ((tmp = strrchr(dir, '/'))) {
+ *tmp = '\0';
+ if (virFileMakePath(dir) < 0) {
+ virReportSystemError(errno,
+ _("Failed to create directory for '%s' dev '%s'"),
+ dir, dev);
+ goto cleanup;
+ }
+ }
+
+ ret = 0;
+
+cleanup:
+ VIR_FREE(dir);
+ return ret;
+}
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list