Rename pg_rewind's copy_file_range() to avoid conflict with new linux syscall.
authorAndres Freund
Wed, 3 Jan 2018 20:00:11 +0000 (12:00 -0800)
committerAndres Freund
Wed, 3 Jan 2018 20:39:59 +0000 (12:39 -0800)
Upcoming versions of glibc will contain copy_file_range(2), a wrapper
around a new linux syscall for in-kernel copying of data ranges. This
conflicts with pg_rewinds function of the same name.

Therefore rename pg_rewinds version. As our version isn't a generic
copying facility we decided to choose a rewind specific function name.

Per buildfarm animal caiman and subsequent discussion with Tom Lane.

Author: Andres Freund
Discussion:
    https://postgr.es/m/20180103033425[email protected]
    https://postgr.es/m/31122.1514951044@sss.pgh.pa.us
Backpatch: 9.5-, where pg_rewind was introduced

src/bin/pg_rewind/copy_fetch.c

index d7ce8ef2fcbcafecc75d0bc2119ba51da1026ec8..d7a31c16f4e0a6f97daf2a8301eeeadb4a548977 100644 (file)
@@ -158,7 +158,7 @@ recurse_dir(const char *datadir, const char *parentpath,
  * If 'trunc' is true, any existing file with the same name is truncated.
  */
 static void
-copy_file_range(const char *path, off_t begin, off_t end, bool trunc)
+rewind_copy_file_range(const char *path, off_t begin, off_t end, bool trunc)
 {
    char        buf[BLCKSZ];
    char        srcpath[MAXPGPATH];
@@ -224,7 +224,7 @@ copy_executeFileMap(filemap_t *map)
                break;
 
            case FILE_ACTION_COPY:
-               copy_file_range(entry->path, 0, entry->newsize, true);
+               rewind_copy_file_range(entry->path, 0, entry->newsize, true);
                break;
 
            case FILE_ACTION_TRUNCATE:
@@ -232,7 +232,8 @@ copy_executeFileMap(filemap_t *map)
                break;
 
            case FILE_ACTION_COPY_TAIL:
-               copy_file_range(entry->path, entry->oldsize, entry->newsize, false);
+               rewind_copy_file_range(entry->path, entry->oldsize,
+                                      entry->newsize, false);
                break;
 
            case FILE_ACTION_CREATE:
@@ -259,7 +260,7 @@ execute_pagemap(datapagemap_t *pagemap, const char *path)
    while (datapagemap_next(iter, &blkno))
    {
        offset = blkno * BLCKSZ;
-       copy_file_range(path, offset, offset + BLCKSZ, false);
+       rewind_copy_file_range(path, offset, offset + BLCKSZ, false);
        /* Ok, this block has now been copied from new data dir to old */
    }
    pg_free(iter);