diff options
Diffstat (limited to 'xlators/cluster/ec')
| -rw-r--r-- | xlators/cluster/ec/src/ec-common.c | 32 | ||||
| -rw-r--r-- | xlators/cluster/ec/src/ec-data.h | 4 | 
2 files changed, 9 insertions, 27 deletions
diff --git a/xlators/cluster/ec/src/ec-common.c b/xlators/cluster/ec/src/ec-common.c index ba81fc7313f..062754b2aba 100644 --- a/xlators/cluster/ec/src/ec-common.c +++ b/xlators/cluster/ec/src/ec-common.c @@ -884,14 +884,6 @@ ec_prepare_update_cbk (call_frame_t *frame, void *cookie,      ctx->have_version = _gf_true; -    if (ec_dict_del_array(dict, EC_XATTR_DIRTY, ctx->pre_dirty, -                          EC_VERSION_SIZE) == 0) { -        ctx->post_dirty[0] += ctx->pre_dirty[0]; -        ctx->post_dirty[1] += ctx->pre_dirty[1]; - -        ctx->have_dirty = _gf_true; -    } -      if (lock->loc.inode->ia_type == IA_IFREG) {          if (ec_dict_del_number(dict, EC_XATTR_SIZE, &ctx->pre_size) != 0) {              gf_log(this->name, GF_LOG_ERROR, "Unable to get size xattr"); @@ -1107,14 +1099,12 @@ void ec_clear_inode_info(ec_fop_data_t *fop, inode_t *inode)      ctx->have_config = _gf_false;      ctx->have_version = _gf_false;      ctx->have_size = _gf_false; -    ctx->have_dirty = _gf_false;      memset(&ctx->config, 0, sizeof(ctx->config));      memset(ctx->pre_version, 0, sizeof(ctx->pre_version));      memset(ctx->post_version, 0, sizeof(ctx->post_version));      ctx->pre_size = ctx->post_size = 0; -    memset(ctx->pre_dirty, 0, sizeof(ctx->pre_dirty)); -    memset(ctx->post_dirty, 0, sizeof(ctx->post_dirty)); +    memset(ctx->dirty, 0, sizeof(ctx->dirty));  unlock:      UNLOCK(&inode->lock); @@ -1472,13 +1462,6 @@ int32_t ec_update_size_version_done(call_frame_t * frame, void * cookie,              ctx->have_size = _gf_true;          } -        if (ec_dict_del_array(xattr, EC_XATTR_DIRTY, ctx->post_dirty, -                              EC_VERSION_SIZE) == 0) { -            ctx->pre_dirty[0] = ctx->post_dirty[0]; -            ctx->pre_dirty[1] = ctx->post_dirty[1]; - -            ctx->have_dirty = _gf_true; -        }          if ((ec_dict_del_config(xdata, EC_XATTR_CONFIG, &ctx->config) == 0) &&              ec_config_check(fop->parent, &ctx->config)) {              ctx->have_config = _gf_true; @@ -1541,7 +1524,7 @@ ec_update_size_version(ec_lock_link_t *link, uint64_t *version,      /* If we don't have dirty information or it has been modified, we update       * it. */ -    if (!ctx->have_dirty || (dirty[0] != 0) || (dirty[1] != 0)) { +    if ((dirty[0] != 0) || (dirty[1] != 0)) {          if (ec_dict_set_array(dict, EC_XATTR_DIRTY, dirty,                                EC_VERSION_SIZE) != 0) {              goto out; @@ -1606,9 +1589,10 @@ ec_update_info(ec_lock_link_t *link)      size = ctx->post_size - ctx->pre_size; -    /* pre_dirty[*] will be 0 if have_dirty is false */ -    dirty[0] = ctx->post_dirty[0] - ctx->pre_dirty[0]; -    dirty[1] = ctx->post_dirty[1] - ctx->pre_dirty[1]; +    dirty[0] = ctx->dirty[0]; +    dirty[1] = ctx->dirty[1]; +    /*Dirty is not combined so just reset it right here*/ +    memset(ctx->dirty, 0, sizeof(ctx->dirty));      if ((version[0] != 0) || (version[1] != 0) ||          (dirty[0] != 0) || (dirty[1] != 0)) { @@ -1817,13 +1801,13 @@ void ec_lock_reuse(ec_fop_data_t *fop)              if (link->update[0]) {                  ctx->post_version[0]++;                  if (ec->node_mask & ~fop->mask) { -                    ctx->post_dirty[0]++; +                    ctx->dirty[0]++;                  }              }              if (link->update[1]) {                  ctx->post_version[1]++;                  if (ec->node_mask & ~fop->mask) { -                    ctx->post_dirty[1]++; +                    ctx->dirty[1]++;                  }              }          } diff --git a/xlators/cluster/ec/src/ec-data.h b/xlators/cluster/ec/src/ec-data.h index 8204cf087de..8f6d5de17a0 100644 --- a/xlators/cluster/ec/src/ec-data.h +++ b/xlators/cluster/ec/src/ec-data.h @@ -72,14 +72,12 @@ struct _ec_inode      gf_boolean_t      have_config;      gf_boolean_t      have_version;      gf_boolean_t      have_size; -    gf_boolean_t      have_dirty;      ec_config_t       config;      uint64_t          pre_version[2];      uint64_t          post_version[2];      uint64_t          pre_size;      uint64_t          post_size; -    uint64_t          pre_dirty[2]; -    uint64_t          post_dirty[2]; +    uint64_t          dirty[2];      struct list_head  heal;  };  | 
