diff options
| -rw-r--r-- | xlators/features/bit-rot/src/stub/bit-rot-stub.c | 23 | 
1 files changed, 15 insertions, 8 deletions
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.c b/xlators/features/bit-rot/src/stub/bit-rot-stub.c index 4ff897d5c86..895e7690a5e 100644 --- a/xlators/features/bit-rot/src/stub/bit-rot-stub.c +++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.c @@ -356,7 +356,7 @@ br_stub_prepare_signing_request (dict_t *dict,  static int  br_stub_init_inode_versions (xlator_t *this, fd_t *fd, inode_t *inode,                               unsigned long version, gf_boolean_t markdirty, -                             gf_boolean_t bad_object) +                             gf_boolean_t bad_object, uint64_t *ctx_addr)  {          int32_t ret = 0;          br_stub_inode_ctx_t *ctx = NULL; @@ -383,6 +383,9 @@ br_stub_init_inode_versions (xlator_t *this, fd_t *fd, inode_t *inode,          ret = br_stub_set_inode_ctx (this, inode, ctx);          if (ret)                  goto free_ctx; + +        if (ctx_addr) +                *ctx_addr = (uint64_t) ctx;          return 0;  free_ctx: @@ -481,7 +484,8 @@ br_stub_need_versioning (xlator_t *this,          ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);          if (ret < 0) {                  ret = br_stub_init_inode_versions (this, fd, fd->inode, version, -                                                   _gf_true, _gf_false); +                                                   _gf_true, _gf_false, +                                                   &ctx_addr);                  if (ret) {                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  BRS_MSG_GET_INODE_CONTEXT_FAILED, "failed to " @@ -579,7 +583,8 @@ br_stub_mark_inode_modified (xlator_t *this, br_stub_local_t *local)          ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);          if (ret < 0) {                  ret = br_stub_init_inode_versions (this, fd, fd->inode, version, -                                                   _gf_true, _gf_false); +                                                   _gf_true, _gf_false, +                                                   &ctx_addr);                  if (ret)                          goto error_return;          } @@ -624,7 +629,7 @@ br_stub_check_bad_object (xlator_t *this, inode_t *inode, int32_t *op_ret,          if (ret == -1) {                  ret = br_stub_init_inode_versions (this, NULL, inode, version, -                                                   _gf_true, _gf_false); +                                                   _gf_true, _gf_false, NULL);                  if (ret) {                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  BRS_MSG_GET_INODE_CONTEXT_FAILED, @@ -2324,7 +2329,8 @@ br_stub_open (call_frame_t *frame, xlator_t *this,          ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);          if (ret) {                  ret = br_stub_init_inode_versions (this, fd, fd->inode, version, -                                                   _gf_true, _gf_false); +                                                   _gf_true, _gf_false, +                                                   &ctx_addr);                  if (ret) {                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  BRS_MSG_GET_INODE_CONTEXT_FAILED, @@ -2426,7 +2432,8 @@ br_stub_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);          if (ret < 0) {                  ret = br_stub_init_inode_versions (this, fd, inode, version, -                                                   _gf_true, _gf_false); +                                                   _gf_true, _gf_false, +                                                   &ctx_addr);                  if (ret) {                          op_ret = -1;                          op_errno = EINVAL; @@ -2482,7 +2489,7 @@ br_stub_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  goto unwind;          ret = br_stub_init_inode_versions (this, NULL, inode, version, -                                           _gf_true, _gf_false); +                                           _gf_true, _gf_false, NULL);          /**           * Like lookup, if init_inode_versions fail, return EINVAL           */ @@ -2573,7 +2580,7 @@ br_stub_lookup_version (xlator_t *this,                  return -1;          return br_stub_init_inode_versions (this, NULL, inode, version, -                                            _gf_true, bad_object); +                                            _gf_true, bad_object, NULL);  }  | 
