From: Daniel Lezcano Date: Thu, 28 May 2009 10:10:50 +0000 (+0200) Subject: make use of the copy file function X-Git-Tag: lxc_0_6_3~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64e1ae63ebfeefd41ddf6857296742d02fecc30a;p=thirdparty%2Flxc.git make use of the copy file function Now we have specific function to copy the files, make use of it and remove the old code. Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 8e6b5a85e..7fb67bb3a 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -644,71 +644,15 @@ static int configure_pts(const char *name, int pts) static int configure_mount(const char *name, const char *fstab) { char path[MAXPATHLEN]; - struct stat stat; - int infd, outfd; - void *src, *dst; - char c = '\0'; - int ret = -1; snprintf(path, MAXPATHLEN, LXCPATH "/%s/fstab", name); - outfd = open(path, O_RDWR|O_CREAT|O_EXCL, 0640); - if (outfd < 0) { - SYSERROR("failed to creat '%s'", path); - goto out; - } - - infd = open(fstab, O_RDONLY); - if (infd < 0) { - SYSERROR("failed to open '%s'", fstab); - goto out_open; - } - - if (fstat(infd, &stat)) { - SYSERROR("failed to stat '%s'", fstab); - goto out_open2; - } - - if (lseek(outfd, stat.st_size - 1, SEEK_SET) < 0) { - SYSERROR("failed to seek dest file '%s'", path); - goto out_open2; - } - - /* fixup length */ - if (write(outfd, &c, 1) < 0) { - SYSERROR("failed to write to '%s'", path); - goto out_open2; - } - - src = mmap(NULL, stat.st_size, PROT_READ, MAP_SHARED, infd, 0L); - if (src == MAP_FAILED) { - SYSERROR("failed to mmap '%s'", fstab); - goto out_open2; - } - - dst = mmap(NULL, stat.st_size, PROT_WRITE, MAP_SHARED, outfd, 0L); - if (dst == MAP_FAILED) { - SYSERROR("failed to mmap '%s'", path); - goto out_mmap; + if (lxc_copy_file(fstab, path)) { + ERROR("failed to copy the fstab file"); + return -1; } - memcpy(dst, src, stat.st_size); - - munmap(src, stat.st_size); - munmap(dst, stat.st_size); - - ret = 0; -out: - return ret; - -out_mmap: - munmap(src, stat.st_size); -out_open2: - close(infd); -out_open: - unlink(path); - close(outfd); - goto out; + return 0; } static int unconfigure_ip_addresses(const char *directory)