summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
authorJeff Darcy <jdarcy@redhat.com>2013-03-21 19:11:25 -0400
committerAnand Avati <avati@redhat.com>2013-04-03 15:16:24 -0700
commit0106fce7fed3dc8f38de3bf365182bdd782b5d9c (patch)
tree915f2dd9134f9bcd805b4d33aed8acd90966e03e /libglusterfs
parent42a9d608d5acbe8526050d23682071171d65da3b (diff)
dht: make nufa/switch call dht's init/fini
These functions keep changing as new functionality is added, so copying and pasting the code is not a good solution. This way ensures that all fields get initialized properly no matter how much new stuff we throw in. Change-Id: I9e9b043d2d305d31e80cf5689465555b70312756 BUG: 924488 Signed-off-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-on: http://review.gluster.org/4710 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/xlator.c27
-rw-r--r--libglusterfs/src/xlator.h7
2 files changed, 20 insertions, 14 deletions
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c
index da5501b2c..1be4c86b2 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -225,8 +225,10 @@ xlator_dynload (xlator_t *xl)
*/
vtbl = dlsym(handle,"class_methods");
if (vtbl) {
- xl->init = vtbl->init;
- xl->fini = vtbl->fini;
+ xl->init = vtbl->init;
+ xl->fini = vtbl->fini;
+ xl->reconfigure = vtbl->reconfigure;
+ xl->notify = vtbl->notify;
}
else {
if (!(*VOID(&xl->init) = dlsym (handle, "init"))) {
@@ -240,11 +242,18 @@ xlator_dynload (xlator_t *xl)
dlerror ());
goto out;
}
- }
+ if (!(*VOID(&(xl->reconfigure)) = dlsym (handle,
+ "reconfigure"))) {
+ gf_log ("xlator", GF_LOG_TRACE,
+ "dlsym(reconfigure) on %s -- neglecting",
+ dlerror());
+ }
+ if (!(*VOID(&(xl->notify)) = dlsym (handle, "notify"))) {
+ gf_log ("xlator", GF_LOG_TRACE,
+ "dlsym(notify) on %s -- neglecting",
+ dlerror ());
+ }
- if (!(*VOID(&(xl->notify)) = dlsym (handle, "notify"))) {
- gf_log ("xlator", GF_LOG_TRACE,
- "dlsym(notify) on %s -- neglecting", dlerror ());
}
if (!(xl->dumpops = dlsym (handle, "dumpops"))) {
@@ -258,12 +267,6 @@ xlator_dynload (xlator_t *xl)
dlerror ());
}
- if (!(*VOID(&(xl->reconfigure)) = dlsym (handle, "reconfigure"))) {
- gf_log ("xlator", GF_LOG_TRACE,
- "dlsym(reconfigure) on %s -- neglecting",
- dlerror());
- }
-
vol_opt = GF_CALLOC (1, sizeof (volume_opt_list_t),
gf_common_mt_volume_opt_list_t);
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h
index 2567fc70c..bb32797c3 100644
--- a/libglusterfs/src/xlator.h
+++ b/libglusterfs/src/xlator.h
@@ -828,8 +828,11 @@ struct _xlator {
};
typedef struct {
- int32_t (*init) (xlator_t *this);
- void (*fini) (xlator_t *this);
+ int32_t (*init) (xlator_t *this);
+ void (*fini) (xlator_t *this);
+ int32_t (*reconfigure) (xlator_t *this,
+ dict_t *options);
+ event_notify_fn_t notify;
} class_methods_t;
#define xlator_has_parent(xl) (xl->parents != NULL)