diff options
Diffstat (limited to 'xlators/performance/nl-cache/src/nl-cache-helper.c')
| -rw-r--r-- | xlators/performance/nl-cache/src/nl-cache-helper.c | 59 |
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); |
