summaryrefslogtreecommitdiffstats
path: root/api/src/glfs-mgmt.c
diff options
context:
space:
mode:
authorKaleb S. KEITHLEY <kkeithle@redhat.com>2014-11-05 10:26:46 -0500
committerVijay Bellur <vbellur@redhat.com>2014-11-07 02:17:56 -0800
commit1ffdf112f707a13c9fd74bbf17f99d28f84f0f0c (patch)
treeb85c779a7c7c789bee66ab206f73b56db2df3371 /api/src/glfs-mgmt.c
parent3867bdb496b9a34ab3db06c151e822aa9379b3e9 (diff)
api: versioned symbols in libgfapi.so for compatibilityv3.6.1
Use versioned symbols to keep libgfapi at libgfapi.so.0.0.0 Some nits uncovered: + there are a couple functions declared that do not have an associated definition, e.g. glfs_truncate(), glfs_caller_specific_init() + there are seven private/internal functions used by heal/src/glfsheal and the gfapi master xlator (glfs-master.c): glfs_loc_touchup(), glfs_active_subvol(), and glfs_subvol_done(), glfs_init_done(), glfs_resolve_at(), glfs_free_from_ctx(), and glfs_new_from_ctx(); which are not declared in glfs.h; + for this initial pass at versioned symbols, we use the earliest version of all public symbols, i.e. those for which there are declarations in glfs.h or glfs-handles.h. Further investigation as we do backports to 3.6, 3.4, and 3.4 will be required to determine if older implementations need to be preserved (forward ported) and their associated alias(es) and symbol version(s) defined. FWIW, we should consider linking all of our libraries with a map, it'll result in a cleaner ABI. Perhaps something for an intern to do or a Google Summer of Code project. Change-Id: Ie3323e62bb125a3b26214153278b4e998804de0e BUG: 1160710 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/9055 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Niels de Vos <ndevos@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'api/src/glfs-mgmt.c')
-rw-r--r--api/src/glfs-mgmt.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/api/src/glfs-mgmt.c b/api/src/glfs-mgmt.c
index 3a428c9d95a..ea017f31af6 100644
--- a/api/src/glfs-mgmt.c
+++ b/api/src/glfs-mgmt.c
@@ -325,7 +325,7 @@ out:
}
int
-glfs_get_volumeid (struct glfs *fs, char *volid, size_t size)
+pub_glfs_get_volumeid (struct glfs *fs, char *volid, size_t size)
{
/* TODO: Define a global macro to store UUID size */
size_t uuid_size = 16;
@@ -365,6 +365,8 @@ done:
return uuid_size;
}
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0);
+
int
glfs_get_volume_info (struct glfs *fs)
{
@@ -585,7 +587,7 @@ out:
gf_log ("mgmt", GF_LOG_ERROR, "Server is operating at an "
"op-version which is not supported");
errno = ENOTSUP;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
}
if (ret && ctx && !ctx->active) {
@@ -598,7 +600,7 @@ out:
if (!need_retry) {
if (!errno)
errno = EINVAL;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
}
}
@@ -697,7 +699,7 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
errno = ENOTCONN;
gf_log("glfs-mgmt", GF_LOG_INFO,
"Exhausted all volfile servers");
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
break;
}
server = list_entry (server->list.next, typeof(*server),
@@ -715,7 +717,7 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to set remote-port: %d",
server->port);
errno = ENOTCONN;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
break;
}
@@ -727,7 +729,7 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to set remote-host: %s",
server->volfile_server);
errno = ENOTCONN;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
break;
}
@@ -739,7 +741,7 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to set transport-type: %s",
server->transport);
errno = ENOTCONN;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
break;
}
gf_log ("glfs-mgmt", GF_LOG_INFO,
@@ -760,7 +762,7 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to fetch volume file (key:%s)",
ctx->cmd_args.volfile_id);
errno = EINVAL;
- glfs_init_done (fs, -1);
+ priv_glfs_init_done (fs, -1);
}
break;