diff options
Diffstat (limited to 'api/src')
-rw-r--r-- | api/src/gfapi.aliases | 4 | ||||
-rw-r--r-- | api/src/gfapi.map | 6 | ||||
-rw-r--r-- | api/src/glfs-handleops.c | 15 | ||||
-rw-r--r-- | api/src/glfs-handles.h | 8 |
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, |