2234 lines
66 KiB
Diff
2234 lines
66 KiB
Diff
From bc09af77376c45d28e6c789b0b4e64deed053aad Mon Sep 17 00:00:00 2001
|
|
From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
|
|
Date: Thu, 2 Jul 2020 15:52:15 -0400
|
|
Subject: [PATCH] api: libgfapi symbol versions break LTO in Fedora rawhide/f33
|
|
|
|
The way symbol versions are implemented is incompatible with gcc-10 and LTO.
|
|
|
|
Fedora provenpackager Jeff Law (law [at] redhat.com) writes in the
|
|
Fedora dist-git glusterfs.spec:
|
|
This package uses top level ASM constructs which are incompatible with LTO.
|
|
Top level ASMs are often used to implement symbol versioning. gcc-10
|
|
introduces a new mechanism for symbol versioning which works with LTO.
|
|
Converting packages to use that mechanism instead of toplevel ASMs is
|
|
recommended.
|
|
|
|
In particular, note that the version of gluster in Fedora rawhide/f33 is
|
|
glusterfs-8.0RC0. Once this fix is merged it will be necessary to backport
|
|
it to the release-8 branch.
|
|
|
|
At the time that gfapi symbol versions were first implemented we copied
|
|
the GNU libc (glibc) symbol version implementation following Uli Drepper's
|
|
symbol versioning HOWTO.
|
|
|
|
Now gcc-10 has a symver attribute that can be used instead. (Maybe it
|
|
has been there all along?)
|
|
|
|
Both the original implemenation and this implemenation yield the same
|
|
symbol versions. This can be seen by running
|
|
`nm -D --with-symbol-versions libgfapi.so`
|
|
on the libgfapi.so built before and after applying this fix.
|
|
|
|
Change-Id: I05fda580afacfff1bfc07be810dd1afc08a92fb8
|
|
Fixes: #1352
|
|
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
---
|
|
api/src/glfs-fops.c | 322 +++++++++++++--------------------------
|
|
api/src/glfs-handleops.c | 100 +++++-------
|
|
api/src/glfs-internal.h | 27 +++-
|
|
api/src/glfs-mgmt.c | 3 +-
|
|
api/src/glfs-resolve.c | 14 +-
|
|
api/src/glfs.c | 99 +++++-------
|
|
6 files changed, 210 insertions(+), 355 deletions(-)
|
|
|
|
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c
|
|
index 8d6d11423..fc2cfa043 100644
|
|
--- a/api/src/glfs-fops.c
|
|
+++ b/api/src/glfs-fops.c
|
|
@@ -292,6 +292,7 @@ glfs_iatt_to_statx(struct glfs *fs, const struct iatt *iatt,
|
|
statx->glfs_st_attributes_mask = 0;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0)
|
|
void
|
|
priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx)
|
|
{
|
|
@@ -371,7 +372,6 @@ priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx)
|
|
iatt->ia_attributes = statx->glfs_st_attributes;
|
|
iatt->ia_attributes_mask = statx->glfs_st_attributes_mask;
|
|
}
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0);
|
|
|
|
void
|
|
glfsflags_from_gfapiflags(struct glfs_stat *stat, int *glvalid)
|
|
@@ -415,6 +415,7 @@ glfs_loc_unlink(loc_t *loc)
|
|
return 0;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0)
|
|
struct glfs_fd *
|
|
pub_glfs_open(struct glfs *fs, const char *path, int flags)
|
|
{
|
|
@@ -509,8 +510,7 @@ invalid_fs:
|
|
return glfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0)
|
|
int
|
|
pub_glfs_close(struct glfs_fd *glfd)
|
|
{
|
|
@@ -565,8 +565,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0)
|
|
int
|
|
pub_glfs_lstat(struct glfs *fs, const char *path, struct stat *stat)
|
|
{
|
|
@@ -607,8 +606,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0)
|
|
int
|
|
pub_glfs_stat(struct glfs *fs, const char *path, struct stat *stat)
|
|
{
|
|
@@ -649,8 +647,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0)
|
|
int
|
|
priv_glfs_statx(struct glfs *fs, const char *path, const unsigned int mask,
|
|
struct glfs_stat *statxbuf)
|
|
@@ -704,8 +701,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0)
|
|
int
|
|
pub_glfs_fstat(struct glfs_fd *glfd, struct stat *stat)
|
|
{
|
|
@@ -754,8 +750,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0)
|
|
struct glfs_fd *
|
|
pub_glfs_creat(struct glfs *fs, const char *path, int flags, mode_t mode)
|
|
{
|
|
@@ -902,8 +897,6 @@ invalid_fs:
|
|
return glfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0);
|
|
-
|
|
#ifdef HAVE_SEEK_HOLE
|
|
static int
|
|
glfs_seek(struct glfs_fd *glfd, off_t offset, int whence)
|
|
@@ -957,6 +950,7 @@ out:
|
|
}
|
|
#endif
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0)
|
|
off_t
|
|
pub_glfs_lseek(struct glfs_fd *glfd, off_t offset, int whence)
|
|
{
|
|
@@ -1012,8 +1006,6 @@ invalid_fs:
|
|
return -1;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0);
|
|
-
|
|
static ssize_t
|
|
glfs_preadv_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
off_t offset, int flags, struct glfs_stat *poststat)
|
|
@@ -1091,6 +1083,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
off_t offset, int flags)
|
|
@@ -1098,8 +1091,7 @@ pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
return glfs_preadv_common(glfd, iovec, iovcnt, offset, flags, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags)
|
|
{
|
|
@@ -1116,8 +1108,7 @@ pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
|
|
int flags)
|
|
@@ -1135,8 +1126,7 @@ pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0)
|
|
ssize_t
|
|
pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
|
|
int flags, struct glfs_stat *poststat)
|
|
@@ -1154,8 +1144,7 @@ pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
int flags)
|
|
@@ -1167,8 +1156,6 @@ pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0);
|
|
-
|
|
struct glfs_io {
|
|
struct glfs_fd *glfd;
|
|
int op;
|
|
@@ -1370,6 +1357,7 @@ invalid_fs:
|
|
return -1;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0)
|
|
int
|
|
pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
int count, off_t offset, int flags, glfs_io_cbk34 fn,
|
|
@@ -1379,8 +1367,7 @@ pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
(void *)fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0)
|
|
int
|
|
pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
int count, off_t offset, int flags, glfs_io_cbk fn,
|
|
@@ -1390,8 +1377,7 @@ pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
_gf_false, fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0)
|
|
int
|
|
pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags,
|
|
glfs_io_cbk34 fn, void *data)
|
|
@@ -1410,8 +1396,7 @@ pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0)
|
|
int
|
|
pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags,
|
|
glfs_io_cbk fn, void *data)
|
|
@@ -1430,8 +1415,7 @@ pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0)
|
|
int
|
|
pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count,
|
|
off_t offset, int flags, glfs_io_cbk34 fn, void *data)
|
|
@@ -1450,8 +1434,7 @@ pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0)
|
|
int
|
|
pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count,
|
|
off_t offset, int flags, glfs_io_cbk fn, void *data)
|
|
@@ -1470,8 +1453,7 @@ pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0)
|
|
int
|
|
pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
int flags, glfs_io_cbk34 fn, void *data)
|
|
@@ -1483,8 +1465,7 @@ pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0)
|
|
int
|
|
pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
int flags, glfs_io_cbk fn, void *data)
|
|
@@ -1496,8 +1477,6 @@ pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0);
|
|
-
|
|
static ssize_t
|
|
glfs_pwritev_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
off_t offset, int flags, struct glfs_stat *prestat,
|
|
@@ -1583,6 +1562,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0)
|
|
ssize_t
|
|
pub_glfs_copy_file_range(struct glfs_fd *glfd_in, off64_t *off_in,
|
|
struct glfs_fd *glfd_out, off64_t *off_out, size_t len,
|
|
@@ -1736,8 +1716,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
off_t offset, int flags)
|
|
@@ -1745,8 +1724,7 @@ pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
|
|
return glfs_pwritev_common(glfd, iovec, iovcnt, offset, flags, NULL, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags)
|
|
{
|
|
@@ -1763,8 +1741,7 @@ pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
int flags)
|
|
@@ -1776,8 +1753,7 @@ pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
off_t offset, int flags)
|
|
@@ -1795,8 +1771,7 @@ pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0)
|
|
ssize_t
|
|
pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
off_t offset, int flags, struct glfs_stat *prestat,
|
|
@@ -1815,8 +1790,6 @@ pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0);
|
|
-
|
|
extern glfs_t *
|
|
pub_glfs_from_glfd(glfs_fd_t *);
|
|
|
|
@@ -1935,6 +1908,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0)
|
|
int
|
|
pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
int count, off_t offset, int flags, glfs_io_cbk34 fn,
|
|
@@ -1944,8 +1918,7 @@ pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
_gf_true, (void *)fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0)
|
|
int
|
|
pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
int count, off_t offset, int flags, glfs_io_cbk fn,
|
|
@@ -1955,8 +1928,7 @@ pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec,
|
|
_gf_false, fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0)
|
|
int
|
|
pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
int flags, glfs_io_cbk34 fn, void *data)
|
|
@@ -1975,8 +1947,7 @@ pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0)
|
|
int
|
|
pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
int flags, glfs_io_cbk fn, void *data)
|
|
@@ -1995,8 +1966,7 @@ pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0)
|
|
int
|
|
pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count,
|
|
off_t offset, int flags, glfs_io_cbk34 fn, void *data)
|
|
@@ -2015,8 +1985,7 @@ pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0)
|
|
int
|
|
pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count,
|
|
off_t offset, int flags, glfs_io_cbk fn, void *data)
|
|
@@ -2035,8 +2004,7 @@ pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0)
|
|
int
|
|
pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov,
|
|
int count, int flags, glfs_io_cbk34 fn, void *data)
|
|
@@ -2048,8 +2016,7 @@ pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0)
|
|
int
|
|
pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
int flags, glfs_io_cbk fn, void *data)
|
|
@@ -2061,8 +2028,6 @@ pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0);
|
|
-
|
|
static int
|
|
glfs_fsync_common(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
struct glfs_stat *poststat)
|
|
@@ -2127,14 +2092,14 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0)
|
|
int
|
|
pub_glfs_fsync34(struct glfs_fd *glfd)
|
|
{
|
|
return glfs_fsync_common(glfd, NULL, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0)
|
|
int
|
|
pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
struct glfs_stat *poststat)
|
|
@@ -2142,8 +2107,6 @@ pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
return glfs_fsync_common(glfd, prestat, poststat);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0);
|
|
-
|
|
static int
|
|
glfs_fsync_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
|
|
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
|
@@ -2224,6 +2187,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0)
|
|
int
|
|
pub_glfs_fsync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data)
|
|
{
|
|
@@ -2240,8 +2204,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0)
|
|
int
|
|
pub_glfs_fsync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)
|
|
{
|
|
@@ -2258,8 +2221,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0);
|
|
-
|
|
static int
|
|
glfs_fdatasync_common(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
struct glfs_stat *poststat)
|
|
@@ -2324,14 +2285,14 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0)
|
|
int
|
|
pub_glfs_fdatasync34(struct glfs_fd *glfd)
|
|
{
|
|
return glfs_fdatasync_common(glfd, NULL, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0)
|
|
int
|
|
pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
struct glfs_stat *poststat)
|
|
@@ -2339,8 +2300,7 @@ pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat,
|
|
return glfs_fdatasync_common(glfd, prestat, poststat);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0)
|
|
int
|
|
pub_glfs_fdatasync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data)
|
|
{
|
|
@@ -2357,8 +2317,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0)
|
|
int
|
|
pub_glfs_fdatasync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)
|
|
{
|
|
@@ -2375,8 +2334,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0);
|
|
-
|
|
static int
|
|
glfs_ftruncate_common(struct glfs_fd *glfd, off_t offset,
|
|
struct glfs_stat *prestat, struct glfs_stat *poststat)
|
|
@@ -2442,14 +2399,14 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0)
|
|
int
|
|
pub_glfs_ftruncate34(struct glfs_fd *glfd, off_t offset)
|
|
{
|
|
return glfs_ftruncate_common(glfd, offset, NULL, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0)
|
|
int
|
|
pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset,
|
|
struct glfs_stat *prestat, struct glfs_stat *poststat)
|
|
@@ -2457,8 +2414,7 @@ pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset,
|
|
return glfs_ftruncate_common(glfd, offset, prestat, poststat);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15)
|
|
int
|
|
pub_glfs_truncate(struct glfs *fs, const char *path, off_t length)
|
|
{
|
|
@@ -2504,8 +2460,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15);
|
|
-
|
|
static int
|
|
glfs_ftruncate_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
|
|
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
|
@@ -2598,6 +2552,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0)
|
|
int
|
|
pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn,
|
|
void *data)
|
|
@@ -2606,8 +2561,7 @@ pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn,
|
|
data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0)
|
|
int
|
|
pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn,
|
|
void *data)
|
|
@@ -2615,8 +2569,7 @@ pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn,
|
|
return glfs_ftruncate_async_common(glfd, offset, _gf_false, fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0)
|
|
int
|
|
pub_glfs_access(struct glfs *fs, const char *path, int mode)
|
|
{
|
|
@@ -2662,8 +2615,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0)
|
|
int
|
|
pub_glfs_symlink(struct glfs *fs, const char *data, const char *path)
|
|
{
|
|
@@ -2753,8 +2705,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0)
|
|
int
|
|
pub_glfs_readlink(struct glfs *fs, const char *path, char *buf, size_t bufsiz)
|
|
{
|
|
@@ -2811,8 +2762,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0)
|
|
int
|
|
pub_glfs_mknod(struct glfs *fs, const char *path, mode_t mode, dev_t dev)
|
|
{
|
|
@@ -2902,8 +2852,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0)
|
|
int
|
|
pub_glfs_mkdir(struct glfs *fs, const char *path, mode_t mode)
|
|
{
|
|
@@ -2993,8 +2942,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0)
|
|
int
|
|
pub_glfs_unlink(struct glfs *fs, const char *path)
|
|
{
|
|
@@ -3050,8 +2998,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0)
|
|
int
|
|
pub_glfs_rmdir(struct glfs *fs, const char *path)
|
|
{
|
|
@@ -3106,8 +3053,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0)
|
|
int
|
|
pub_glfs_rename(struct glfs *fs, const char *oldpath, const char *newpath)
|
|
{
|
|
@@ -3196,8 +3142,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0)
|
|
int
|
|
pub_glfs_link(struct glfs *fs, const char *oldpath, const char *newpath)
|
|
{
|
|
@@ -3283,8 +3228,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0)
|
|
struct glfs_fd *
|
|
pub_glfs_opendir(struct glfs *fs, const char *path)
|
|
{
|
|
@@ -3365,8 +3309,7 @@ invalid_fs:
|
|
return glfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0)
|
|
int
|
|
pub_glfs_closedir(struct glfs_fd *glfd)
|
|
{
|
|
@@ -3387,16 +3330,14 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0)
|
|
long
|
|
pub_glfs_telldir(struct glfs_fd *fd)
|
|
{
|
|
return fd->offset;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0)
|
|
void
|
|
pub_glfs_seekdir(struct glfs_fd *fd, long offset)
|
|
{
|
|
@@ -3425,8 +3366,6 @@ pub_glfs_seekdir(struct glfs_fd *fd, long offset)
|
|
*/
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0);
|
|
-
|
|
static int
|
|
glfs_discard_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
|
|
int32_t op_ret, int32_t op_errno,
|
|
@@ -3517,6 +3456,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0)
|
|
int
|
|
pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len,
|
|
glfs_io_cbk34 fn, void *data)
|
|
@@ -3525,8 +3465,7 @@ pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len,
|
|
data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0)
|
|
int
|
|
pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len,
|
|
glfs_io_cbk fn, void *data)
|
|
@@ -3534,8 +3473,6 @@ pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len,
|
|
return glfs_discard_async_common(glfd, offset, len, _gf_false, fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0);
|
|
-
|
|
static int
|
|
glfs_zerofill_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
|
|
int32_t op_ret, int32_t op_errno,
|
|
@@ -3628,6 +3565,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0)
|
|
int
|
|
pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len,
|
|
glfs_io_cbk34 fn, void *data)
|
|
@@ -3636,8 +3574,7 @@ pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len,
|
|
data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0)
|
|
int
|
|
pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len,
|
|
glfs_io_cbk fn, void *data)
|
|
@@ -3645,8 +3582,6 @@ pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len,
|
|
return glfs_zerofill_async_common(glfd, offset, len, _gf_false, fn, data);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0);
|
|
-
|
|
void
|
|
gf_dirent_to_dirent(gf_dirent_t *gf_dirent, struct dirent *dirent)
|
|
{
|
|
@@ -3806,6 +3741,7 @@ unlock:
|
|
return buf;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0)
|
|
int
|
|
pub_glfs_readdirplus_r(struct glfs_fd *glfd, struct stat *stat,
|
|
struct dirent *ext, struct dirent **res)
|
|
@@ -3861,8 +3797,7 @@ invalid_fs:
|
|
return -1;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0)
|
|
int
|
|
pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf,
|
|
struct dirent **res)
|
|
@@ -3870,8 +3805,7 @@ pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf,
|
|
return pub_glfs_readdirplus_r(glfd, 0, buf, res);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0)
|
|
struct dirent *
|
|
pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat)
|
|
{
|
|
@@ -3885,16 +3819,14 @@ pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat)
|
|
return res;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0)
|
|
struct dirent *
|
|
pub_glfs_readdir(struct glfs_fd *glfd)
|
|
{
|
|
return pub_glfs_readdirplus(glfd, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0)
|
|
int
|
|
pub_glfs_statvfs(struct glfs *fs, const char *path, struct statvfs *buf)
|
|
{
|
|
@@ -3940,8 +3872,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0)
|
|
int
|
|
pub_glfs_setattr(struct glfs *fs, const char *path, struct glfs_stat *stat,
|
|
int follow)
|
|
@@ -4001,8 +3932,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0)
|
|
int
|
|
pub_glfs_fsetattr(struct glfs_fd *glfd, struct glfs_stat *stat)
|
|
{
|
|
@@ -4055,8 +3985,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0)
|
|
int
|
|
pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode)
|
|
{
|
|
@@ -4073,8 +4002,7 @@ pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0)
|
|
int
|
|
pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode)
|
|
{
|
|
@@ -4091,8 +4019,7 @@ pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0)
|
|
int
|
|
pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid)
|
|
{
|
|
@@ -4117,8 +4044,7 @@ pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0)
|
|
int
|
|
pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid)
|
|
{
|
|
@@ -4143,8 +4069,7 @@ pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0)
|
|
int
|
|
pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid)
|
|
{
|
|
@@ -4169,8 +4094,7 @@ pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0)
|
|
int
|
|
pub_glfs_utimens(struct glfs *fs, const char *path,
|
|
const struct timespec times[2])
|
|
@@ -4190,8 +4114,7 @@ pub_glfs_utimens(struct glfs *fs, const char *path,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0)
|
|
int
|
|
pub_glfs_lutimens(struct glfs *fs, const char *path,
|
|
const struct timespec times[2])
|
|
@@ -4211,8 +4134,7 @@ pub_glfs_lutimens(struct glfs *fs, const char *path,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0)
|
|
int
|
|
pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2])
|
|
{
|
|
@@ -4231,8 +4153,6 @@ pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2])
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0);
|
|
-
|
|
int
|
|
glfs_getxattr_process(void *value, size_t size, dict_t *xattr, const char *name)
|
|
{
|
|
@@ -4332,6 +4252,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name,
|
|
void *value, size_t size)
|
|
@@ -4339,8 +4260,7 @@ pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name,
|
|
return glfs_getxattr_common(fs, path, name, value, size, 1);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name,
|
|
void *value, size_t size)
|
|
@@ -4348,8 +4268,7 @@ pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name,
|
|
return glfs_getxattr_common(fs, path, name, value, size, 0);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_fgetxattr(struct glfs_fd *glfd, const char *name, void *value,
|
|
size_t size)
|
|
@@ -4412,8 +4331,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0);
|
|
-
|
|
int
|
|
glfs_listxattr_process(void *value, size_t size, dict_t *xattr)
|
|
{
|
|
@@ -4497,22 +4414,21 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_listxattr(struct glfs *fs, const char *path, void *value, size_t size)
|
|
{
|
|
return glfs_listxattr_common(fs, path, value, size, 1);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_llistxattr(struct glfs *fs, const char *path, void *value, size_t size)
|
|
{
|
|
return glfs_listxattr_common(fs, path, value, size, 0);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0)
|
|
ssize_t
|
|
pub_glfs_flistxattr(struct glfs_fd *glfd, void *value, size_t size)
|
|
{
|
|
@@ -4562,8 +4478,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0);
|
|
-
|
|
int
|
|
glfs_setxattr_common(struct glfs *fs, const char *path, const char *name,
|
|
const void *value, size_t size, int flags, int follow)
|
|
@@ -4643,6 +4557,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0)
|
|
int
|
|
pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name,
|
|
const void *value, size_t size, int flags)
|
|
@@ -4650,8 +4565,7 @@ pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name,
|
|
return glfs_setxattr_common(fs, path, name, value, size, flags, 1);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0)
|
|
int
|
|
pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name,
|
|
const void *value, size_t size, int flags)
|
|
@@ -4659,8 +4573,7 @@ pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name,
|
|
return glfs_setxattr_common(fs, path, name, value, size, flags, 0);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0)
|
|
int
|
|
pub_glfs_fsetxattr(struct glfs_fd *glfd, const char *name, const void *value,
|
|
size_t size, int flags)
|
|
@@ -4735,8 +4648,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0);
|
|
-
|
|
int
|
|
glfs_removexattr_common(struct glfs *fs, const char *path, const char *name,
|
|
int follow)
|
|
@@ -4787,22 +4698,21 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0)
|
|
int
|
|
pub_glfs_removexattr(struct glfs *fs, const char *path, const char *name)
|
|
{
|
|
return glfs_removexattr_common(fs, path, name, 1);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0)
|
|
int
|
|
pub_glfs_lremovexattr(struct glfs *fs, const char *path, const char *name)
|
|
{
|
|
return glfs_removexattr_common(fs, path, name, 0);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0)
|
|
int
|
|
pub_glfs_fremovexattr(struct glfs_fd *glfd, const char *name)
|
|
{
|
|
@@ -4845,8 +4755,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0)
|
|
int
|
|
pub_glfs_fallocate(struct glfs_fd *glfd, int keep_size, off_t offset,
|
|
size_t len)
|
|
@@ -4897,8 +4806,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0)
|
|
int
|
|
pub_glfs_discard(struct glfs_fd *glfd, off_t offset, size_t len)
|
|
{
|
|
@@ -4948,8 +4856,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0)
|
|
int
|
|
pub_glfs_zerofill(struct glfs_fd *glfd, off_t offset, off_t len)
|
|
{
|
|
@@ -4997,8 +4904,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0)
|
|
int
|
|
pub_glfs_chdir(struct glfs *fs, const char *path)
|
|
{
|
|
@@ -5048,8 +4954,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0)
|
|
int
|
|
pub_glfs_fchdir(struct glfs_fd *glfd)
|
|
{
|
|
@@ -5101,8 +5006,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0);
|
|
-
|
|
static gf_boolean_t warn_realpath = _gf_true; /* log once */
|
|
|
|
static char *
|
|
@@ -5185,22 +5088,21 @@ invalid_fs:
|
|
return retpath;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0)
|
|
char *
|
|
pub_glfs_realpath34(struct glfs *fs, const char *path, char *resolved_path)
|
|
{
|
|
return glfs_realpath_common(fs, path, resolved_path, _gf_true);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17)
|
|
char *
|
|
pub_glfs_realpath(struct glfs *fs, const char *path, char *resolved_path)
|
|
{
|
|
return glfs_realpath_common(fs, path, resolved_path, _gf_false);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0)
|
|
char *
|
|
pub_glfs_getcwd(struct glfs *fs, char *buf, size_t n)
|
|
{
|
|
@@ -5249,8 +5151,6 @@ invalid_fs:
|
|
return buf;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0);
|
|
-
|
|
static void
|
|
gf_flock_to_flock(struct gf_flock *gf_flock, struct flock *flock)
|
|
{
|
|
@@ -5357,6 +5257,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0)
|
|
int
|
|
pub_glfs_file_lock(struct glfs_fd *glfd, int cmd, struct flock *flock,
|
|
glfs_lock_mode_t lk_mode)
|
|
@@ -5393,16 +5294,14 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0)
|
|
int
|
|
pub_glfs_posix_lock(struct glfs_fd *glfd, int cmd, struct flock *flock)
|
|
{
|
|
return glfs_lock_common(glfd, cmd, flock, NULL);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7)
|
|
int
|
|
pub_glfs_fd_set_lkowner(struct glfs_fd *glfd, void *data, int len)
|
|
{
|
|
@@ -5438,8 +5337,8 @@ out:
|
|
invalid_fs:
|
|
return ret;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0)
|
|
struct glfs_fd *
|
|
pub_glfs_dup(struct glfs_fd *glfd)
|
|
{
|
|
@@ -5490,8 +5389,6 @@ invalid_fs:
|
|
return dupfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0);
|
|
-
|
|
static void
|
|
glfs_enqueue_upcall_data(struct glfs *fs, struct gf_upcall *upcall_data)
|
|
{
|
|
@@ -5976,6 +5873,7 @@ out:
|
|
* Otherwise all the upcall events are queued up in a list
|
|
* to be read/polled by the applications.
|
|
*/
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0)
|
|
void
|
|
priv_glfs_process_upcall_event(struct glfs *fs, void *data)
|
|
{
|
|
@@ -6043,7 +5941,6 @@ out:
|
|
err:
|
|
return;
|
|
}
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0);
|
|
|
|
ssize_t
|
|
glfs_anonymous_pwritev(struct glfs *fs, struct glfs_object *object,
|
|
@@ -6229,6 +6126,7 @@ glfs_release_xreaddirp_stat(void *ptr)
|
|
* Given glfd of a directory, this function does readdirp and returns
|
|
* xstat along with dirents.
|
|
*/
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0)
|
|
int
|
|
pub_glfs_xreaddirplus_r(struct glfs_fd *glfd, uint32_t flags,
|
|
struct glfs_xreaddirp_stat **xstat_p,
|
|
@@ -6337,8 +6235,8 @@ out:
|
|
invalid_fs:
|
|
return -1;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0)
|
|
struct stat *
|
|
pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat)
|
|
{
|
|
@@ -6354,7 +6252,6 @@ pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat)
|
|
out:
|
|
return NULL;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0);
|
|
|
|
void
|
|
gf_lease_to_glfs_lease(struct gf_lease *gf_lease, struct glfs_lease *lease)
|
|
@@ -6374,6 +6271,7 @@ glfs_lease_to_gf_lease(struct glfs_lease *lease, struct gf_lease *gf_lease)
|
|
memcpy(gf_lease->lease_id, lease->lease_id, LEASE_ID_SIZE);
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0)
|
|
int
|
|
pub_glfs_lease(struct glfs_fd *glfd, struct glfs_lease *lease,
|
|
glfs_recall_cbk fn, void *data)
|
|
@@ -6475,5 +6373,3 @@ out:
|
|
invalid_fs:
|
|
return ret;
|
|
}
|
|
-
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0);
|
|
diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c
|
|
index cdac07124..53c2ee896 100644
|
|
--- a/api/src/glfs-handleops.c
|
|
+++ b/api/src/glfs-handleops.c
|
|
@@ -60,6 +60,7 @@ glfs_iatt_from_stat(struct stat *stat, int valid, struct iatt *iatt,
|
|
return;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4)
|
|
struct glfs_object *
|
|
pub_glfs_h_lookupat(struct glfs *fs, struct glfs_object *parent,
|
|
const char *path, struct stat *stat, int follow)
|
|
@@ -126,8 +127,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent,
|
|
const char *path, struct stat *stat)
|
|
@@ -135,8 +135,7 @@ pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent,
|
|
return pub_glfs_h_lookupat(fs, parent, path, stat, 0);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0)
|
|
int
|
|
pub_glfs_h_statfs(struct glfs *fs, struct glfs_object *object,
|
|
struct statvfs *statvfs)
|
|
@@ -194,8 +193,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2)
|
|
int
|
|
pub_glfs_h_stat(struct glfs *fs, struct glfs_object *object, struct stat *stat)
|
|
{
|
|
@@ -259,8 +257,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2)
|
|
int
|
|
pub_glfs_h_getattrs(struct glfs *fs, struct glfs_object *object,
|
|
struct stat *stat)
|
|
@@ -317,8 +314,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2);
|
|
-
|
|
int
|
|
glfs_h_getxattrs_common(struct glfs *fs, struct glfs_object *object,
|
|
dict_t **xattr, const char *name,
|
|
@@ -380,6 +375,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1)
|
|
int
|
|
pub_glfs_h_getxattrs(struct glfs *fs, struct glfs_object *object,
|
|
const char *name, void *value, size_t size)
|
|
@@ -416,8 +412,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2)
|
|
int
|
|
pub_glfs_h_setattrs(struct glfs *fs, struct glfs_object *object,
|
|
struct stat *stat, int valid)
|
|
@@ -480,8 +475,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0)
|
|
int
|
|
pub_glfs_h_setxattrs(struct glfs *fs, struct glfs_object *object,
|
|
const char *name, const void *value, size_t size,
|
|
@@ -568,8 +562,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1)
|
|
int
|
|
pub_glfs_h_removexattrs(struct glfs *fs, struct glfs_object *object,
|
|
const char *name)
|
|
@@ -626,8 +619,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2)
|
|
struct glfs_fd *
|
|
pub_glfs_h_open(struct glfs *fs, struct glfs_object *object, int flags)
|
|
{
|
|
@@ -727,8 +719,7 @@ invalid_fs:
|
|
return glfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_creat(struct glfs *fs, struct glfs_object *parent, const char *path,
|
|
int flags, mode_t mode, struct stat *stat)
|
|
@@ -840,8 +831,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6)
|
|
struct glfs_object *
|
|
pub_glfs_h_creat_open(struct glfs *fs, struct glfs_object *parent,
|
|
const char *path, int flags, mode_t mode,
|
|
@@ -975,8 +965,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_mkdir(struct glfs *fs, struct glfs_object *parent, const char *path,
|
|
mode_t mode, struct stat *stat)
|
|
@@ -1074,8 +1063,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_mknod(struct glfs *fs, struct glfs_object *parent, const char *path,
|
|
mode_t mode, dev_t dev, struct stat *stat)
|
|
@@ -1172,8 +1160,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2)
|
|
int
|
|
pub_glfs_h_unlink(struct glfs *fs, struct glfs_object *parent, const char *path)
|
|
{
|
|
@@ -1244,8 +1231,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2)
|
|
struct glfs_fd *
|
|
pub_glfs_h_opendir(struct glfs *fs, struct glfs_object *object)
|
|
{
|
|
@@ -1327,8 +1313,7 @@ invalid_fs:
|
|
return glfd;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0)
|
|
int
|
|
pub_glfs_h_access(struct glfs *fs, struct glfs_object *object, int mask)
|
|
{
|
|
@@ -1385,8 +1370,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2)
|
|
ssize_t
|
|
pub_glfs_h_extract_handle(struct glfs_object *object, unsigned char *handle,
|
|
int len)
|
|
@@ -1417,8 +1401,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_create_from_handle(struct glfs *fs, unsigned char *handle, int len,
|
|
struct stat *stat)
|
|
@@ -1541,8 +1524,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2)
|
|
int
|
|
pub_glfs_h_close(struct glfs_object *object)
|
|
{
|
|
@@ -1555,8 +1537,7 @@ pub_glfs_h_close(struct glfs_object *object)
|
|
return 0;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2)
|
|
int
|
|
pub_glfs_h_truncate(struct glfs *fs, struct glfs_object *object, off_t offset)
|
|
{
|
|
@@ -1616,8 +1597,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2)
|
|
struct glfs_object *
|
|
pub_glfs_h_symlink(struct glfs *fs, struct glfs_object *parent,
|
|
const char *name, const char *data, struct stat *stat)
|
|
@@ -1716,8 +1696,7 @@ invalid_fs:
|
|
return object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2)
|
|
int
|
|
pub_glfs_h_readlink(struct glfs *fs, struct glfs_object *object, char *buf,
|
|
size_t bufsiz)
|
|
@@ -1782,8 +1761,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2)
|
|
int
|
|
pub_glfs_h_link(struct glfs *fs, struct glfs_object *linksrc,
|
|
struct glfs_object *parent, const char *name)
|
|
@@ -1880,8 +1858,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2)
|
|
int
|
|
pub_glfs_h_rename(struct glfs *fs, struct glfs_object *olddir,
|
|
const char *oldname, struct glfs_object *newdir,
|
|
@@ -1991,8 +1968,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2);
|
|
-
|
|
/*
|
|
* Given a handle/gfid, find if the corresponding inode is present in
|
|
* the inode table. If yes create and return the corresponding glfs_object.
|
|
@@ -2200,6 +2175,7 @@ glfs_release_upcall(void *ptr)
|
|
* calling glfs_fini(..). Hence making an assumption that 'fs' & ctx structures
|
|
* cannot be freed while in this routine.
|
|
*/
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16)
|
|
int
|
|
pub_glfs_h_poll_upcall(struct glfs *fs, struct glfs_upcall **up_arg)
|
|
{
|
|
@@ -2317,8 +2293,6 @@ err:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16);
|
|
-
|
|
static gf_boolean_t log_upcall370 = _gf_true; /* log once */
|
|
|
|
/* The old glfs_h_poll_upcall interface requires intimate knowledge of the
|
|
@@ -2332,6 +2306,7 @@ static gf_boolean_t log_upcall370 = _gf_true; /* log once */
|
|
*
|
|
* WARNING: this function will be removed in the future.
|
|
*/
|
|
+GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0)
|
|
int
|
|
pub_glfs_h_poll_upcall370(struct glfs *fs, struct glfs_callback_arg *up_arg)
|
|
{
|
|
@@ -2399,12 +2374,11 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0);
|
|
-
|
|
#ifdef HAVE_ACL_LIBACL_H
|
|
#include <glusterfs/glusterfs-acl.h>
|
|
#include <acl/libacl.h>
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0)
|
|
int
|
|
pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object,
|
|
const acl_type_t type, const acl_t acl)
|
|
@@ -2453,6 +2427,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0)
|
|
acl_t
|
|
pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object,
|
|
const acl_type_t type)
|
|
@@ -2507,6 +2482,7 @@ invalid_fs:
|
|
return acl;
|
|
}
|
|
#else /* !HAVE_ACL_LIBACL_H */
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0)
|
|
acl_t
|
|
pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object,
|
|
const acl_type_t type)
|
|
@@ -2515,6 +2491,7 @@ pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object,
|
|
return NULL;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0)
|
|
int
|
|
pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object,
|
|
const acl_type_t type, const acl_t acl)
|
|
@@ -2523,10 +2500,9 @@ pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object,
|
|
return -1;
|
|
}
|
|
#endif
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0);
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0);
|
|
|
|
/* The API to perform read using anonymous fd */
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0)
|
|
ssize_t
|
|
pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object,
|
|
const void *buf, size_t count, off_t offset)
|
|
@@ -2550,9 +2526,8 @@ pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0);
|
|
-
|
|
/* The API to perform write using anonymous fd */
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0)
|
|
ssize_t
|
|
pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object,
|
|
const void *buf, size_t count, off_t offset)
|
|
@@ -2576,8 +2551,7 @@ pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object,
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0)
|
|
struct glfs_object *
|
|
pub_glfs_object_copy(struct glfs_object *src)
|
|
{
|
|
@@ -2599,8 +2573,8 @@ pub_glfs_object_copy(struct glfs_object *src)
|
|
out:
|
|
return object;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0)
|
|
struct glfs_object *
|
|
pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat)
|
|
{
|
|
@@ -2616,8 +2590,8 @@ pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat)
|
|
out:
|
|
return NULL;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0)
|
|
int
|
|
pub_glfs_h_lease(struct glfs *fs, struct glfs_object *object,
|
|
struct glfs_lease *lease)
|
|
@@ -2679,5 +2653,3 @@ out:
|
|
invalid_fs:
|
|
return ret;
|
|
}
|
|
-
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0);
|
|
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h
|
|
index 2a50e1d46..7cc3b18a1 100644
|
|
--- a/api/src/glfs-internal.h
|
|
+++ b/api/src/glfs-internal.h
|
|
@@ -81,25 +81,40 @@
|
|
#ifndef GFAPI_PRIVATE
|
|
#define GFAPI_PRIVATE(sym, ver) /**/
|
|
#endif
|
|
+#if __GNUC__ >= 10
|
|
#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \
|
|
- asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver))
|
|
+ __attribute__((__symver__(STR(fn) "@@GFAPI_" STR(ver))))
|
|
|
|
#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \
|
|
- asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver))
|
|
+ __attribute__((__symver__(STR(fn) "@@GFAPI_PRIVATE_" STR(ver))))
|
|
|
|
#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \
|
|
- asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver))
|
|
+ __attribute__((__symver__(STR(fn2) "@GFAPI_" STR(ver))))
|
|
|
|
#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \
|
|
- asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver))
|
|
+ __attribute__((__symver__(STR(fn2) "@GFAPI_PRIVATE_" STR(ver))))
|
|
+
|
|
+#else
|
|
+#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \
|
|
+ asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver));
|
|
+
|
|
+#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \
|
|
+ asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver));
|
|
+
|
|
+#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \
|
|
+ asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver));
|
|
+
|
|
+#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \
|
|
+ asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver));
|
|
+#endif
|
|
#define STR(str) #str
|
|
#else
|
|
#ifndef GFAPI_PUBLIC
|
|
-#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver))
|
|
+#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver));
|
|
#endif
|
|
#ifndef GFAPI_PRIVATE
|
|
#define GFAPI_PRIVATE(sym, ver) \
|
|
- __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver))
|
|
+ __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver));
|
|
#endif
|
|
#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) /**/
|
|
#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) /**/
|
|
diff --git a/api/src/glfs-mgmt.c b/api/src/glfs-mgmt.c
|
|
index 7271e35ec..08df2b1a4 100644
|
|
--- a/api/src/glfs-mgmt.c
|
|
+++ b/api/src/glfs-mgmt.c
|
|
@@ -364,6 +364,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0)
|
|
int
|
|
pub_glfs_get_volumeid(struct glfs *fs, char *volid, size_t size)
|
|
{
|
|
@@ -418,8 +419,6 @@ invalid_fs:
|
|
return -1;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0);
|
|
-
|
|
int
|
|
glfs_get_volume_info(struct glfs *fs)
|
|
{
|
|
diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c
|
|
index 7b60eef00..8a393ecb4 100644
|
|
--- a/api/src/glfs-resolve.c
|
|
+++ b/api/src/glfs-resolve.c
|
|
@@ -162,6 +162,7 @@ __glfs_refresh_inode(struct glfs *fs, xlator_t *subvol, inode_t *inode,
|
|
return newinode;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0)
|
|
int
|
|
priv_glfs_loc_touchup(loc_t *loc)
|
|
{
|
|
@@ -176,8 +177,6 @@ priv_glfs_loc_touchup(loc_t *loc)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0);
|
|
-
|
|
int
|
|
glfs_resolve_symlink(struct glfs *fs, xlator_t *subvol, inode_t *inode,
|
|
char **lpath)
|
|
@@ -467,6 +466,7 @@ out:
|
|
return inode;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0)
|
|
int
|
|
priv_glfs_resolve_at(struct glfs *fs, xlator_t *subvol, inode_t *at,
|
|
const char *origpath, loc_t *loc, struct iatt *iatt,
|
|
@@ -617,8 +617,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0);
|
|
-
|
|
int
|
|
glfs_resolve_path(struct glfs *fs, xlator_t *subvol, const char *origpath,
|
|
loc_t *loc, struct iatt *iatt, int follow, int reval)
|
|
@@ -647,6 +645,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0)
|
|
int
|
|
priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath,
|
|
loc_t *loc, struct iatt *iatt, int reval)
|
|
@@ -657,7 +656,6 @@ priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath,
|
|
|
|
return ret;
|
|
}
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0);
|
|
|
|
int
|
|
glfs_lresolve(struct glfs *fs, xlator_t *subvol, const char *origpath,
|
|
@@ -978,6 +976,7 @@ __glfs_active_subvol(struct glfs *fs)
|
|
return new_subvol;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0)
|
|
void
|
|
priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol)
|
|
{
|
|
@@ -1005,8 +1004,7 @@ priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol)
|
|
}
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0)
|
|
xlator_t *
|
|
priv_glfs_active_subvol(struct glfs *fs)
|
|
{
|
|
@@ -1034,8 +1032,6 @@ priv_glfs_active_subvol(struct glfs *fs)
|
|
return subvol;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0);
|
|
-
|
|
int
|
|
__glfs_cwd_set(struct glfs *fs, inode_t *inode)
|
|
{
|
|
diff --git a/api/src/glfs.c b/api/src/glfs.c
|
|
index 93e0938b8..5259356b4 100644
|
|
--- a/api/src/glfs.c
|
|
+++ b/api/src/glfs.c
|
|
@@ -275,6 +275,7 @@ out:
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0)
|
|
int
|
|
pub_glfs_set_xlator_option(struct glfs *fs, const char *xlator, const char *key,
|
|
const char *value)
|
|
@@ -324,8 +325,7 @@ invalid_fs:
|
|
return -1;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1)
|
|
int
|
|
pub_glfs_unset_volfile_server(struct glfs *fs, const char *transport,
|
|
const char *host, const int port)
|
|
@@ -385,8 +385,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0)
|
|
int
|
|
pub_glfs_set_volfile_server(struct glfs *fs, const char *transport,
|
|
const char *host, int port)
|
|
@@ -465,8 +464,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0);
|
|
-
|
|
/* *
|
|
* Used to free the arguments allocated by glfs_set_volfile_server()
|
|
*/
|
|
@@ -509,6 +506,7 @@ glfs_free_xlator_options(cmd_args_t *cmd_args)
|
|
}
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2)
|
|
int
|
|
pub_glfs_setfsuid(uid_t fsuid)
|
|
{
|
|
@@ -518,8 +516,7 @@ pub_glfs_setfsuid(uid_t fsuid)
|
|
return syncopctx_setfsuid(&fsuid);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2)
|
|
int
|
|
pub_glfs_setfsgid(gid_t fsgid)
|
|
{
|
|
@@ -529,8 +526,7 @@ pub_glfs_setfsgid(gid_t fsgid)
|
|
return syncopctx_setfsgid(&fsgid);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2)
|
|
int
|
|
pub_glfs_setfsgroups(size_t size, const gid_t *list)
|
|
{
|
|
@@ -540,8 +536,7 @@ pub_glfs_setfsgroups(size_t size, const gid_t *list)
|
|
return syncopctx_setfsgroups(size, list);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0)
|
|
int
|
|
pub_glfs_setfsleaseid(glfs_leaseid_t leaseid)
|
|
{
|
|
@@ -563,8 +558,6 @@ pub_glfs_setfsleaseid(glfs_leaseid_t leaseid)
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0);
|
|
-
|
|
int
|
|
get_fop_attr_glfd(dict_t **fop_attr, struct glfs_fd *glfd)
|
|
{
|
|
@@ -652,14 +645,14 @@ unset_fop_attr(dict_t **fop_attr)
|
|
*fop_attr = NULL;
|
|
}
|
|
}
|
|
+
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0)
|
|
struct glfs *
|
|
pub_glfs_from_glfd(struct glfs_fd *glfd)
|
|
{
|
|
return glfd->fs;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0);
|
|
-
|
|
static void
|
|
glfs_fd_destroy(struct glfs_fd *glfd)
|
|
{
|
|
@@ -808,6 +801,7 @@ unlock:
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0)
|
|
struct glfs *
|
|
pub_glfs_new(const char *volname)
|
|
{
|
|
@@ -914,8 +908,7 @@ out:
|
|
return fs;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0)
|
|
struct glfs *
|
|
priv_glfs_new_from_ctx(glusterfs_ctx_t *ctx)
|
|
{
|
|
@@ -934,8 +927,7 @@ out:
|
|
return fs;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0)
|
|
void
|
|
priv_glfs_free_from_ctx(struct glfs *fs)
|
|
{
|
|
@@ -971,8 +963,7 @@ priv_glfs_free_from_ctx(struct glfs *fs)
|
|
FREE(fs);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0)
|
|
int
|
|
pub_glfs_set_volfile(struct glfs *fs, const char *volfile)
|
|
{
|
|
@@ -989,8 +980,7 @@ pub_glfs_set_volfile(struct glfs *fs, const char *volfile)
|
|
return 0;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0)
|
|
int
|
|
pub_glfs_set_logging(struct glfs *fs, const char *logfile, int loglevel)
|
|
{
|
|
@@ -1028,8 +1018,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0);
|
|
-
|
|
int
|
|
glfs_init_wait(struct glfs *fs)
|
|
{
|
|
@@ -1048,6 +1036,7 @@ glfs_init_wait(struct glfs *fs)
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0)
|
|
void
|
|
priv_glfs_init_done(struct glfs *fs, int ret)
|
|
{
|
|
@@ -1078,8 +1067,6 @@ out:
|
|
return;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0);
|
|
-
|
|
int
|
|
glfs_init_common(struct glfs *fs)
|
|
{
|
|
@@ -1119,6 +1106,7 @@ glfs_init_async(struct glfs *fs, glfs_init_cbk cbk)
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0)
|
|
int
|
|
pub_glfs_init(struct glfs *fs)
|
|
{
|
|
@@ -1151,8 +1139,6 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0);
|
|
-
|
|
static int
|
|
glusterfs_ctx_destroy(glusterfs_ctx_t *ctx)
|
|
{
|
|
@@ -1230,6 +1216,7 @@ glusterfs_ctx_destroy(glusterfs_ctx_t *ctx)
|
|
return ret;
|
|
}
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0)
|
|
int
|
|
pub_glfs_fini(struct glfs *fs)
|
|
{
|
|
@@ -1420,8 +1407,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0)
|
|
ssize_t
|
|
pub_glfs_get_volfile(struct glfs *fs, void *buf, size_t len)
|
|
{
|
|
@@ -1447,8 +1433,7 @@ invalid_fs:
|
|
return res;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0)
|
|
int
|
|
priv_glfs_ipc(struct glfs *fs, int opcode, void *xd_in, void **xd_out)
|
|
{
|
|
@@ -1476,8 +1461,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0);
|
|
-
|
|
+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1)
|
|
int
|
|
priv_glfs_setfspid(struct glfs *fs, pid_t pid)
|
|
{
|
|
@@ -1491,107 +1475,104 @@ priv_glfs_setfspid(struct glfs *fs, pid_t pid)
|
|
|
|
return ret;
|
|
}
|
|
-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16)
|
|
void
|
|
pub_glfs_free(void *ptr)
|
|
{
|
|
GLFS_FREE(ptr);
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16)
|
|
struct glfs *
|
|
pub_glfs_upcall_get_fs(struct glfs_upcall *arg)
|
|
{
|
|
return arg->fs;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16)
|
|
enum glfs_upcall_reason
|
|
pub_glfs_upcall_get_reason(struct glfs_upcall *arg)
|
|
{
|
|
return arg->reason;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16)
|
|
void *
|
|
pub_glfs_upcall_get_event(struct glfs_upcall *arg)
|
|
{
|
|
return arg->event;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16)
|
|
struct glfs_object *
|
|
pub_glfs_upcall_inode_get_object(struct glfs_upcall_inode *arg)
|
|
{
|
|
return arg->object;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16)
|
|
uint64_t
|
|
pub_glfs_upcall_inode_get_flags(struct glfs_upcall_inode *arg)
|
|
{
|
|
return arg->flags;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16)
|
|
struct stat *
|
|
pub_glfs_upcall_inode_get_stat(struct glfs_upcall_inode *arg)
|
|
{
|
|
return &arg->buf;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16)
|
|
uint64_t
|
|
pub_glfs_upcall_inode_get_expire(struct glfs_upcall_inode *arg)
|
|
{
|
|
return arg->expire_time_attr;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16)
|
|
struct glfs_object *
|
|
pub_glfs_upcall_inode_get_pobject(struct glfs_upcall_inode *arg)
|
|
{
|
|
return arg->p_object;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16)
|
|
struct stat *
|
|
pub_glfs_upcall_inode_get_pstat(struct glfs_upcall_inode *arg)
|
|
{
|
|
return &arg->p_buf;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16)
|
|
struct glfs_object *
|
|
pub_glfs_upcall_inode_get_oldpobject(struct glfs_upcall_inode *arg)
|
|
{
|
|
return arg->oldp_object;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16)
|
|
struct stat *
|
|
pub_glfs_upcall_inode_get_oldpstat(struct glfs_upcall_inode *arg)
|
|
{
|
|
return &arg->oldp_buf;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16);
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6)
|
|
struct glfs_object *
|
|
pub_glfs_upcall_lease_get_object(struct glfs_upcall_lease *arg)
|
|
{
|
|
return arg->object;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6)
|
|
uint32_t
|
|
pub_glfs_upcall_lease_get_lease_type(struct glfs_upcall_lease *arg)
|
|
{
|
|
return arg->lease_type;
|
|
}
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6);
|
|
|
|
/* definitions of the GLFS_SYSRQ_* chars are in glfs.h */
|
|
static struct glfs_sysrq_help {
|
|
@@ -1601,6 +1582,7 @@ static struct glfs_sysrq_help {
|
|
{GLFS_SYSRQ_STATEDUMP, "(S)tatedump"},
|
|
{0, NULL}};
|
|
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0)
|
|
int
|
|
pub_glfs_sysrq(struct glfs *fs, char sysrq)
|
|
{
|
|
@@ -1649,8 +1631,7 @@ out:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0)
|
|
int
|
|
pub_glfs_upcall_register(struct glfs *fs, uint32_t event_list,
|
|
glfs_upcall_cbk cbk, void *data)
|
|
@@ -1706,8 +1687,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0)
|
|
int
|
|
pub_glfs_upcall_unregister(struct glfs *fs, uint32_t event_list)
|
|
{
|
|
@@ -1754,8 +1734,7 @@ invalid_fs:
|
|
return ret;
|
|
}
|
|
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0);
|
|
-
|
|
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0)
|
|
int
|
|
pub_glfs_set_statedump_path(struct glfs *fs, const char *path)
|
|
{
|
|
@@ -1815,5 +1794,3 @@ err:
|
|
invalid_fs:
|
|
return -1;
|
|
}
|
|
-
|
|
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0);
|
|
--
|
|
2.26.2
|
|
|