summaryrefslogtreecommitdiffstats
path: root/api/src
diff options
context:
space:
mode:
Diffstat (limited to 'api/src')
-rw-r--r--api/src/gfapi.aliases4
-rw-r--r--api/src/gfapi.map6
-rw-r--r--api/src/glfs-handleops.c15
-rw-r--r--api/src/glfs-handles.h8
4 files changed, 24 insertions, 9 deletions
diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases
index 9776c87fdcb..40b6ed21192 100644
--- a/api/src/gfapi.aliases
+++ b/api/src/gfapi.aliases
@@ -89,7 +89,7 @@ _pub_glfs_dup _glfs_dup$GFAPI_3.4.0
_pub_glfs_setfsuid _glfs_setfsuid$GFAPI_3.4.2
_pub_glfs_setfsgid _glfs_setfsgid$GFAPI_3.4.2
_pub_glfs_setfsgroups _glfs_setfsgroups$GFAPI_3.4.2
-_pub_glfs_h_lookupat _glfs_h_lookupat$GFAPI_3.4.2
+_pub_glfs_h_lookupat34 _glfs_h_lookupat$GFAPI_3.4.2
_pub_glfs_h_creat _glfs_h_creat$GFAPI_3.4.2
_pub_glfs_h_mkdir _glfs_h_mkdir$GFAPI_3.4.2
_pub_glfs_h_mknod _glfs_h_mknod$GFAPI_3.4.2
@@ -138,3 +138,5 @@ _priv_glfs_free_from_ctx _glfs_free_from_ctx$GFAPI_PRIVATE_3.7.0
_priv_glfs_new_from_ctx _glfs_new_from_ctx$GFAPI_PRIVATE_3.7.0
_priv_glfs_resolve _glfs_resolve$GFAPI_PRIVATE_3.7.0
_priv_glfs_process_upcall_event _glfs_process_upcall_event$GFAPI_PRIVATE_3.7.0
+
+_pub_glfs_h_lookupat _glfs_h_lookupat$GFAPI_3.7.4
diff --git a/api/src/gfapi.map b/api/src/gfapi.map
index 48863985135..d42ae2b97af 100644
--- a/api/src/gfapi.map
+++ b/api/src/gfapi.map
@@ -98,7 +98,6 @@ GFAPI_3.4.2 {
glfs_setfsuid;
glfs_setfsgid;
glfs_setfsgroups;
- glfs_h_lookupat;
glfs_h_creat;
glfs_h_mkdir;
glfs_h_mknod;
@@ -163,3 +162,8 @@ GFAPI_PRIVATE_3.7.0 {
glfs_resolve;
glfs_process_upcall_event;
} GFAPI_3.7.0;
+
+GFAPI_3.7.4 {
+ global:
+ glfs_h_lookupat;
+} GFAPI_PRIVATE_3.7.0;
diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c
index 2e552b763dc..79085ff33a1 100644
--- a/api/src/glfs-handleops.c
+++ b/api/src/glfs-handleops.c
@@ -63,7 +63,7 @@ glfs_iatt_from_stat (struct stat *stat, int valid, struct iatt *iatt,
struct glfs_object *
pub_glfs_h_lookupat (struct glfs *fs, struct glfs_object *parent,
- const char *path, struct stat *stat)
+ const char *path, struct stat *stat, int follow)
{
int ret = 0;
xlator_t *subvol = NULL;
@@ -100,7 +100,7 @@ pub_glfs_h_lookupat (struct glfs *fs, struct glfs_object *parent,
/* fop/op */
ret = glfs_resolve_at (fs, subvol, inode, path, &loc, &iatt,
- 0 /*TODO: links? */, 0);
+ follow, 0);
/* populate out args */
if (!ret) {
@@ -124,7 +124,16 @@ invalid_fs:
return object;
}
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.4.2);
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4);
+
+struct glfs_object *
+pub_glfs_h_lookupat34 (struct glfs *fs, struct glfs_object *parent,
+ const char *path, struct stat *stat)
+{
+ return pub_glfs_h_lookupat (fs, parent, path, stat, 0);
+}
+
+GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2);
int
pub_glfs_h_statfs (struct glfs *fs, struct glfs_object *object,
diff --git a/api/src/glfs-handles.h b/api/src/glfs-handles.h
index 3f2df0a853e..74cc61da651 100644
--- a/api/src/glfs-handles.h
+++ b/api/src/glfs-handles.h
@@ -153,10 +153,10 @@ enum gfapi_callback_type {
/* Handle based operations */
/* Operations that generate handles */
struct glfs_object *glfs_h_lookupat (struct glfs *fs,
- struct glfs_object *parent,
- const char *path,
- struct stat *stat) __THROW
- GFAPI_PUBLIC(glfs_h_lookupat, 3.4.0);
+ struct glfs_object *parent,
+ const char *path,
+ struct stat *stat, int follow) __THROW
+ GFAPI_PUBLIC(glfs_h_lookupat, 3.7.4);
struct glfs_object *glfs_h_creat (struct glfs *fs, struct glfs_object *parent,
const char *path, int flags, mode_t mode,