Quoting Dwight Engen (dwight.en...@oracle.com):
> Commit e3642c43 added lxc_copy_file for use in 64e1ae63. The use of it
> was removed in commit 1bc60a65. Removing it reduces dead code and the
> footprint of liblxc.
> 
> Signed-off-by: Dwight Engen <dwight.en...@oracle.com>

Thanks, I had noticed this while implementing my own version for the
c-api version of clone, but never acted on it.  (I prefer my own version
for clone's use)

Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com>

> ---
>  src/lxc/utils.c | 71 
> ---------------------------------------------------------
>  src/lxc/utils.h |  1 -
>  2 files changed, 72 deletions(-)
> 
> diff --git a/src/lxc/utils.c b/src/lxc/utils.c
> index f4ba905..ecf9d2c 100644
> --- a/src/lxc/utils.c
> +++ b/src/lxc/utils.c
> @@ -39,77 +39,6 @@
>  
>  lxc_log_define(lxc_utils, lxc);
>  
> -int lxc_copy_file(const char *srcfile, const char *dstfile)
> -{
> -     void *srcaddr = NULL, *dstaddr;
> -     struct stat stat;
> -     int srcfd, dstfd, ret = -1;
> -     char c = '\0';
> -
> -     dstfd = open(dstfile, O_CREAT | O_EXCL | O_RDWR, 0600);
> -     if (dstfd < 0) {
> -             SYSERROR("failed to creat '%s'", dstfile);
> -             goto out;
> -     }
> -
> -     srcfd = open(srcfile, O_RDONLY);
> -     if (srcfd < 0) {
> -             SYSERROR("failed to open '%s'", srcfile);
> -             goto err;
> -     }
> -
> -     if (fstat(srcfd, &stat)) {
> -             SYSERROR("failed to stat '%s'", srcfile);
> -             goto err;
> -     }
> -
> -     if (!stat.st_size) {
> -             INFO("copy '%s' which is an empty file", srcfile);
> -             ret = 0;
> -             goto out_close;
> -     }
> -
> -     if (lseek(dstfd, stat.st_size - 1, SEEK_SET) < 0) {
> -             SYSERROR("failed to seek dest file '%s'", dstfile);
> -             goto err;
> -     }
> -
> -     /* fixup length */
> -     if (write(dstfd, &c, 1) < 0) {
> -             SYSERROR("failed to write to '%s'", dstfile);
> -             goto err;
> -     }
> -
> -     srcaddr = mmap(NULL, stat.st_size, PROT_READ, MAP_SHARED, srcfd, 0L);
> -     if (srcaddr == MAP_FAILED) {
> -             SYSERROR("failed to mmap '%s'", srcfile);
> -             goto err;
> -     }
> -
> -     dstaddr = mmap(NULL, stat.st_size, PROT_WRITE, MAP_SHARED, dstfd, 0L);
> -     if (dstaddr == MAP_FAILED) {
> -             SYSERROR("failed to mmap '%s'", dstfile);
> -             goto err;
> -     }
> -
> -     ret = 0;
> -
> -     memcpy(dstaddr, srcaddr, stat.st_size);
> -
> -     munmap(dstaddr, stat.st_size);
> -out_mmap:
> -     if (srcaddr)
> -             munmap(srcaddr, stat.st_size);
> -out_close:
> -     close(dstfd);
> -     close(srcfd);
> -out:
> -     return ret;
> -err:
> -     unlink(dstfile);
> -     goto out_mmap;
> -}
> -
>  static int mount_fs(const char *source, const char *target, const char *type)
>  {
>       /* the umount may fail */
> diff --git a/src/lxc/utils.h b/src/lxc/utils.h
> index bf5b6cd..8954503 100644
> --- a/src/lxc/utils.h
> +++ b/src/lxc/utils.h
> @@ -23,7 +23,6 @@
>  #ifndef _utils_h
>  #define _utils_h
>  
> -extern int lxc_copy_file(const char *src, const char *dst);
>  extern int lxc_setup_fs(void);
>  extern int get_u16(unsigned short *val, const char *arg, int base);
>  extern int mkdir_p(const char *dir, mode_t mode);
> -- 
> 1.7.12.3
> 
> 
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to