summaryrefslogtreecommitdiffstats
path: root/xlators/performance/nl-cache/src/nl-cache-helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/performance/nl-cache/src/nl-cache-helper.c')
-rw-r--r--xlators/performance/nl-cache/src/nl-cache-helper.c59
1 files changed, 28 insertions, 31 deletions
diff --git a/xlators/performance/nl-cache/src/nl-cache-helper.c b/xlators/performance/nl-cache/src/nl-cache-helper.c
index 279c023a5b1..29b99b5b8ea 100644
--- a/xlators/performance/nl-cache/src/nl-cache-helper.c
+++ b/xlators/performance/nl-cache/src/nl-cache-helper.c
@@ -10,7 +10,7 @@
#include "nl-cache.h"
#include "timer-wheel.h"
-#include "statedump.h"
+#include <glusterfs/statedump.h>
/* Caching guidelines:
* This xlator serves negative lookup(ENOENT lookups) from the cache,
@@ -113,7 +113,7 @@ out:
}
void
-nlc_update_child_down_time(xlator_t *this, time_t *now)
+nlc_update_child_down_time(xlator_t *this, time_t now)
{
nlc_conf_t *conf = NULL;
@@ -121,7 +121,7 @@ nlc_update_child_down_time(xlator_t *this, time_t *now)
LOCK(&conf->lock);
{
- conf->last_child_down = *now;
+ conf->last_child_down = now;
}
UNLOCK(&conf->lock);
@@ -145,12 +145,10 @@ nlc_disable_cache(xlator_t *this)
}
static int
-__nlc_inode_ctx_get(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
- nlc_pe_t **nlc_pe_p)
+__nlc_inode_ctx_get(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p)
{
int ret = 0;
nlc_ctx_t *nlc_ctx = NULL;
- nlc_pe_t *nlc_pe = NULL;
uint64_t nlc_ctx_int = 0;
uint64_t nlc_pe_int = 0;
@@ -159,10 +157,6 @@ __nlc_inode_ctx_get(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
nlc_ctx = (void *)(long)(nlc_ctx_int);
*nlc_ctx_p = nlc_ctx;
}
- if (ret == 0 && nlc_pe_p) {
- nlc_pe = (void *)(long)(nlc_pe_int);
- *nlc_pe_p = nlc_pe;
- }
return ret;
}
@@ -170,30 +164,32 @@ static int
nlc_inode_ctx_set(xlator_t *this, inode_t *inode, nlc_ctx_t *nlc_ctx,
nlc_pe_t *nlc_pe_p)
{
+ uint64_t ctx1, ctx2;
int ret = -1;
+ ctx1 = (uint64_t)(uintptr_t)nlc_ctx;
+ ctx2 = (uint64_t)(uintptr_t)nlc_pe_p;
+
/* The caller may choose to set one of the ctxs, hence check
* if the ctx1/2 is non zero and then send the address. If we
* blindly send the address of both the ctxs, it may reset the
* ctx the caller had sent NULL(intended as leave untouched) for.*/
LOCK(&inode->lock);
{
- ret = __inode_ctx_set2(inode, this, nlc_ctx ? (uint64_t *)&nlc_ctx : 0,
- nlc_pe_p ? (uint64_t *)&nlc_pe_p : 0);
+ ret = __inode_ctx_set2(inode, this, ctx1 ? &ctx1 : 0, ctx2 ? &ctx2 : 0);
}
UNLOCK(&inode->lock);
return ret;
}
static void
-nlc_inode_ctx_get(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
- nlc_pe_t **nlc_pe_p)
+nlc_inode_ctx_get(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p)
{
int ret = 0;
LOCK(&inode->lock);
{
- ret = __nlc_inode_ctx_get(this, inode, nlc_ctx_p, nlc_pe_p);
+ ret = __nlc_inode_ctx_get(this, inode, nlc_ctx_p);
if (ret < 0)
gf_msg_debug(this->name, 0,
"inode ctx get failed for "
@@ -266,7 +262,7 @@ nlc_init_invalid_ctx(xlator_t *this, inode_t *inode, nlc_ctx_t *nlc_ctx)
if (nlc_ctx->timer) {
gf_tw_mod_timer_pending(conf->timer_wheel, nlc_ctx->timer,
conf->cache_timeout);
- time(&nlc_ctx->cache_time);
+ nlc_ctx->cache_time = gf_time();
goto unlock;
}
@@ -290,9 +286,9 @@ out:
}
static nlc_ctx_t *
-nlc_inode_ctx_get_set(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
- nlc_pe_t **nlc_pe_p)
+nlc_inode_ctx_get_set(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p)
{
+ uint64_t ctx;
int ret = 0;
nlc_ctx_t *nlc_ctx = NULL;
nlc_conf_t *conf = NULL;
@@ -301,7 +297,7 @@ nlc_inode_ctx_get_set(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
LOCK(&inode->lock);
{
- ret = __nlc_inode_ctx_get(this, inode, &nlc_ctx, nlc_pe_p);
+ ret = __nlc_inode_ctx_get(this, inode, &nlc_ctx);
if (nlc_ctx)
goto unlock;
@@ -323,7 +319,8 @@ nlc_inode_ctx_get_set(xlator_t *this, inode_t *inode, nlc_ctx_t **nlc_ctx_p,
goto unlock;
}
- ret = __inode_ctx_set2(inode, this, (uint64_t *)&nlc_ctx, NULL);
+ ctx = (uint64_t)(uintptr_t)nlc_ctx;
+ ret = __inode_ctx_set2(inode, this, &ctx, NULL);
if (ret) {
gf_msg(this->name, GF_LOG_ERROR, ENOMEM, NLC_MSG_NO_MEMORY,
"inode ctx set failed");
@@ -410,7 +407,7 @@ nlc_set_dir_state(xlator_t *this, inode_t *inode, uint64_t state)
goto out;
}
- nlc_inode_ctx_get_set(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get_set(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -430,7 +427,7 @@ nlc_cache_timeout_handler(struct gf_tw_timer_list *timer, void *data,
nlc_timer_data_t *tmp = data;
nlc_ctx_t *nlc_ctx = NULL;
- nlc_inode_ctx_get(tmp->this, tmp->inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(tmp->this, tmp->inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -499,7 +496,7 @@ __nlc_inode_ctx_timer_start(xlator_t *this, inode_t *inode, nlc_ctx_t *nlc_ctx)
nlc_ctx->timer_data = tmp;
gf_tw_add_timer(conf->timer_wheel, timer);
- time(&nlc_ctx->cache_time);
+ nlc_ctx->cache_time = gf_time();
gf_msg_trace(this->name, 0,
"Registering timer:%p, inode:%p, "
"gfid:%s",
@@ -696,7 +693,7 @@ nlc_inode_clear_cache(xlator_t *this, inode_t *inode, int reason)
{
nlc_ctx_t *nlc_ctx = NULL;
- nlc_inode_ctx_get(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -883,7 +880,7 @@ nlc_dir_add_ne(xlator_t *this, inode_t *inode, const char *name)
goto out;
}
- nlc_inode_ctx_get_set(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get_set(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -914,7 +911,7 @@ nlc_dir_remove_pe(xlator_t *this, inode_t *parent, inode_t *entry_ino,
goto out;
}
- nlc_inode_ctx_get(this, parent, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(this, parent, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -945,7 +942,7 @@ nlc_dir_add_pe(xlator_t *this, inode_t *inode, inode_t *entry_ino,
goto out;
}
- nlc_inode_ctx_get_set(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get_set(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -1051,7 +1048,7 @@ nlc_is_negative_lookup(xlator_t *this, loc_t *loc)
goto out;
}
- nlc_inode_ctx_get(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -1102,7 +1099,7 @@ nlc_get_real_file_name(xlator_t *this, loc_t *loc, const char *fname,
goto out;
}
- nlc_inode_ctx_get(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -1152,7 +1149,7 @@ nlc_dump_inodectx(xlator_t *this, inode_t *inode)
nlc_ne_t *ne = NULL;
nlc_ne_t *tmp1 = NULL;
- nlc_inode_ctx_get(this, inode, &nlc_ctx, NULL);
+ nlc_inode_ctx_get(this, inode, &nlc_ctx);
if (!nlc_ctx)
goto out;
@@ -1176,7 +1173,7 @@ nlc_dump_inodectx(xlator_t *this, inode_t *inode)
gf_proc_dump_write("state", "%" PRIu64, nlc_ctx->state);
gf_proc_dump_write("timer", "%p", nlc_ctx->timer);
- gf_proc_dump_write("cache-time", "%" GF_PRI_TIME, nlc_ctx->cache_time);
+ gf_proc_dump_write("cache-time", "%ld", nlc_ctx->cache_time);
gf_proc_dump_write("cache-size", "%zu", nlc_ctx->cache_size);
gf_proc_dump_write("refd-inodes", "%" PRIu64, nlc_ctx->refd_inodes);