]> git.proxmox.com Git - mirror_lxc.git/commitdiff
make use of the copy file function
authorDaniel Lezcano <dlezcano@fr.ibm.com>
Thu, 28 May 2009 10:10:50 +0000 (12:10 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Thu, 28 May 2009 10:10:50 +0000 (12:10 +0200)
Now we have specific function to copy the files, make use of it
and remove the old code.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/conf.c

index 8e6b5a85e2b6376b3f2706874b3cbf9646967ca2..7fb67bb3aabe2c761a3bc5be20606a03c0c56e72 100644 (file)
@@ -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)