summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2015-06-28 10:15:44 +0200
committerNiels de Vos <ndevos@redhat.com>2015-06-28 01:25:24 -0700
commitb147ebb158c9f516ae2d815aaf1cd270efd5ebcb (patch)
tree61c914790809afb4a040df09f319d28ef0cf9c33
parent049c8eec304d9548fccb127ee8ce82f179bc41b0 (diff)
Revert "Upcall/gfapi: Return ENOTSUP when upcall feature is disabled"
This reverts commit b68f671b2b8a0aafef8f98145aee7044edaa907d from http://review.gluster.org/11196 . The change depends on modifications to the cluster xlators, but these are still partially under review. Dropping this change now, it causes regression tests to fail. Change-Id: If5ae4a519c9c6312cdb2e2a31acce4b1901f9442 BUG: 1231132 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/11452
-rw-r--r--api/src/glfs-handleops.c12
-rw-r--r--api/src/glfs-handles.h1
-rw-r--r--api/src/glfs-internal.h1
-rw-r--r--api/src/glfs.c59
-rw-r--r--libglusterfs/src/common-utils.h1
-rw-r--r--libglusterfs/src/upcall-utils.h15
-rw-r--r--xlators/features/upcall/src/upcall.c49
7 files changed, 3 insertions, 135 deletions
diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c
index 38d8ccba041..47f2139c140 100644
--- a/api/src/glfs-handleops.c
+++ b/api/src/glfs-handleops.c
@@ -1881,18 +1881,6 @@ pub_glfs_h_poll_upcall (struct glfs *fs, struct callback_arg *up_arg)
__GLFS_ENTRY_VALIDATE_FS (fs, err);
- /* check if upcalls are enabled */
- if (!fs->upcall_features) {
- errno = ENOTSUP;
- goto restore;
- }
-
- /* check if GF_UPCALL_CACHE_INVALIDATION is supported */
- if (!(fs->upcall_features & (1 << GF_UPCALL_CACHE_INVALIDATION))) {
- errno = ENOTSUP;
- goto restore;
- }
-
/* get the active volume */
subvol = glfs_active_subvol (fs);
diff --git a/api/src/glfs-handles.h b/api/src/glfs-handles.h
index ddb11bf0bd5..19c4e8f7a62 100644
--- a/api/src/glfs-handles.h
+++ b/api/src/glfs-handles.h
@@ -293,7 +293,6 @@ glfs_h_access (struct glfs *fs, struct glfs_object *object, int mask) __THROW
0 : Success.
-1 : Error condition, mostly due to out of memory.
- 'errno' is set to ENOTSUP if upcall feature is not enabled.
*/
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h
index 608b534b1ab..1b87dae5a52 100644
--- a/api/src/glfs-internal.h
+++ b/api/src/glfs-internal.h
@@ -199,7 +199,6 @@ struct glfs {
gf_boolean_t migration_in_progress;
- uint32_t upcall_features; /* supported upcall events */
struct list_head upcall_list;
pthread_mutex_t upcall_list_mutex; /* mutex for upcall entry list */
diff --git a/api/src/glfs.c b/api/src/glfs.c
index 7b9f1ed6d01..fc392947e1e 100644
--- a/api/src/glfs.c
+++ b/api/src/glfs.c
@@ -253,58 +253,6 @@ get_volfp (struct glfs *fs)
}
-static int
-detect_upcall_features (struct glfs *fs)
-{
- xlator_t *subvol = NULL;
- int ret = -1;
- dict_t *dict = NULL;
- uint32_t features = 0;
-
- DECLARE_OLD_THIS;
- __GLFS_ENTRY_VALIDATE_FS (fs, invalid_fs);
-
- subvol = glfs_active_subvol (fs);
- if (!subvol) {
- ret = -1;
- errno = EIO;
- goto out;
- }
-
- ret = syncop_ipc (subvol, GF_IPC_UPCALL_FEATURES, NULL, &dict);
- DECODE_SYNCOP_ERR (ret);
-
- if (ret)
- /* some real error occured */
- goto out;
-
- if (!dict) {
- /* unavailable upcalls should not be an error */
- ret = 0;
- goto out;
- }
-
- ret = dict_get_uint32 (dict, GF_UPCALL_FEATURES, &features);
- if (ret) {
- /* unavailable upcalls should not be an error */
- ret = 0;
- goto out;
- }
-
- fs->upcall_features = features;
-
-out:
- if (dict)
- dict_unref (dict);
-
- glfs_subvol_done (fs, subvol);
- __GLFS_EXIT_FS;
-
-invalid_fs:
- return ret;
-}
-
-
int
glfs_volumes_init (struct glfs *fs)
{
@@ -319,7 +267,7 @@ glfs_volumes_init (struct glfs *fs)
if (cmd_args->volfile_server) {
ret = glfs_mgmt_init (fs);
- goto finish;
+ goto out;
}
fp = get_volfp (fs);
@@ -336,11 +284,6 @@ glfs_volumes_init (struct glfs *fs)
if (ret)
goto out;
-finish:
- ret = detect_upcall_features (fs);
- if (ret)
- goto out;
-
out:
return ret;
}
diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h
index 9b07e8c7565..86ea42ee849 100644
--- a/libglusterfs/src/common-utils.h
+++ b/libglusterfs/src/common-utils.h
@@ -125,7 +125,6 @@ enum _gf_client_pid
enum _gf_xlator_ipc_targets {
GF_IPC_TARGET_CHANGELOG = 0,
- GF_IPC_UPCALL_FEATURES = 1,
};
typedef enum _gf_boolean gf_boolean_t;
diff --git a/libglusterfs/src/upcall-utils.h b/libglusterfs/src/upcall-utils.h
index 5f6970fe7e1..001566fd85e 100644
--- a/libglusterfs/src/upcall-utils.h
+++ b/libglusterfs/src/upcall-utils.h
@@ -15,20 +15,9 @@
#include "compat-uuid.h"
#include "compat.h"
-/* Used by GF_IPC_UPCALL_FEATURES in the ipc() FOP.
- *
- * Each feature is a bit in the uint32_t, this likely will match all the events
- * from the gf_upcall_event_t enum.
- *
- * When the bit for GF_UPCALL_EVENT_NULL is not set, upcall is loaded, but
- * disabled.
- */
-#define GF_UPCALL_FEATURES "gluster.upcall.features"
-
typedef enum {
- GF_UPCALL_EVENT_NULL = 0,
- GF_UPCALL_CACHE_INVALIDATION = 1,
- /* add new events to the feature mask in up_ipc() */
+ GF_UPCALL_EVENT_NULL,
+ GF_UPCALL_CACHE_INVALIDATION,
} gf_upcall_event_t;
struct gf_upcall {
diff --git a/xlators/features/upcall/src/upcall.c b/xlators/features/upcall/src/upcall.c
index bb29866543b..4954d43db07 100644
--- a/xlators/features/upcall/src/upcall.c
+++ b/xlators/features/upcall/src/upcall.c
@@ -1552,52 +1552,6 @@ err:
}
int32_t
-up_ipc (call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata)
-{
- int ret = 0;
- uint32_t features = 0;
-
- /* upcall only has one IPC operation */
- if (op != GF_IPC_UPCALL_FEATURES)
- goto wind;
-
- if (!xdata) {
- xdata = dict_new();
- if (!xdata) {
- ret = -1;
- goto unwind;
- }
- } else {
- /* take an extra reference so that we can unconditionally unref
- * it later */
- dict_ref (xdata);
- }
-
- /* build the feature bitmask */
- if (is_upcall_enabled(this))
- features |= (1 << GF_UPCALL_EVENT_NULL);
-
- /* check if 'GF_UPCALL_CACHE_INVALIDATION' is available */
- if (is_cache_invalidation_enabled(this))
- features |= (1 << GF_UPCALL_CACHE_INVALIDATION);
-
- ret = dict_set_uint32 (xdata, GF_UPCALL_FEATURES, features);
-
-unwind:
- UPCALL_STACK_UNWIND (ipc, frame, ret, errno, xdata);
-
- dict_unref (xdata);
-
- return 0;
-
-wind:
- STACK_WIND (frame, default_ipc_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->ipc, op, xdata);
-
- return 0;
-}
-
-int32_t
mem_acct_init (xlator_t *this)
{
int ret = -1;
@@ -1859,9 +1813,6 @@ struct xlator_fops fops = {
.rmdir = up_rmdir,
.rename = up_rename,
- /* xlator internal communication */
- .ipc = up_ipc,
-
#ifdef NOT_SUPPORTED
/* internal lk fops */
.inodelk = up_inodelk,