summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-linkfile.c
diff options
context:
space:
mode:
authorshishir gowda <shishirng@gluster.com>2011-08-02 15:30:06 +0530
committerAnand Avati <avati@gluster.com>2011-08-03 21:57:27 -0700
commit5bd8f537da3fe570e481713a1c2c4ee6e88ac38e (patch)
treec4427d2c698048f374a7e409a8273e2d9fc92635 /xlators/cluster/dht/src/dht-linkfile.c
parenta08927b04e2d55edcb12be77128949798ed8f142 (diff)
DHT rename: Recreate linkfile after unlink
This is done, so that there is no gfid mismatch. Unlink the older linkfile if it exists, and recreate it with the correct gfid. Also removed unused rename related code. Change-Id: Ice0cdff51db786dafb1a019f7642c7d000e8c5f3 BUG: 2522 Reviewed-on: http://review.gluster.com/142 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-linkfile.c')
-rw-r--r--xlators/cluster/dht/src/dht-linkfile.c140
1 files changed, 0 insertions, 140 deletions
diff --git a/xlators/cluster/dht/src/dht-linkfile.c b/xlators/cluster/dht/src/dht-linkfile.c
index e936f3119a6..89fc32725ec 100644
--- a/xlators/cluster/dht/src/dht-linkfile.c
+++ b/xlators/cluster/dht/src/dht-linkfile.c
@@ -189,143 +189,3 @@ dht_linkfile_subvol (xlator_t *this, inode_t *inode, struct iatt *stbuf,
out:
return subvol;
}
-
-int
-dht_recreate_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno,
- struct iatt *preparent, struct iatt *postparent)
-{
- dht_local_t *local = NULL;
- xlator_t *subvol = NULL;
- xlator_t *src_cached = NULL;
- xlator_t *dst_hashed = NULL;
- call_frame_t *prev = NULL;
- loc_t *loc = NULL;
-
- GF_VALIDATE_OR_GOTO ("dht", frame, err);
- GF_VALIDATE_OR_GOTO ("dht", this, err);
- GF_VALIDATE_OR_GOTO ("dht", frame->local, err);
-
- local = frame->local;
- prev = cookie;
- subvol = prev->this;
- src_cached = local->src_cached;
- dst_hashed = local->dst_hashed;
- loc = &local->loc;
-
- if (!src_cached || !dst_hashed) {
- gf_log (this->name, GF_LOG_ERROR, "src_cached or dst_hashed"
- "subvol is null");
- local->op_ret = -1;
- local->op_errno = EINVAL;
- goto out;
- }
-
- if (op_ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "unlinking linkfile %s on %s failed (%s)",
- loc->path, subvol->name, strerror (op_errno));
- local->op_ret = op_ret;
- local->op_errno = op_errno;
- goto out;
- }
- gf_log (this->name, GF_LOG_DEBUG, "unlink successfull. Proceeding with"
- " creation of link file %s", loc->path);
- dht_linkfile_create (frame, local->linkfile.linkfile_cbk,
- src_cached, dst_hashed, loc);
-
- return 0;
-out:
- local->linkfile.linkfile_cbk (frame, NULL, frame->this, -1, EINVAL,
- local->loc.inode, NULL, NULL, NULL);
-err:
- return -1;
-}
-
-int
-dht_linkfile_recreate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
- int op_ret, int op_errno,
- inode_t *inode, struct iatt *stbuf, dict_t *xattr,
- struct iatt *postparent)
-{
- dht_local_t *local = NULL;
- xlator_t *src_cached = NULL;
- xlator_t *dst_hashed = NULL;
- loc_t *loc = NULL;
-
- GF_VALIDATE_OR_GOTO ("dht", frame, err);
- GF_VALIDATE_OR_GOTO ("dht", this, err);
- GF_VALIDATE_OR_GOTO ("dht", frame->local, err);
-
- local = frame->local;
- loc = &local->loc;
-
- src_cached = local->src_cached;
- dst_hashed = local->dst_hashed;
-
- if (!src_cached || !dst_hashed) {
- gf_log (this->name, GF_LOG_ERROR, "src_cached or dst_hashed"
- " or hashed_subvol is null");
- local->op_ret = -1;
- local->op_errno = EINVAL;
- goto out;
- }
-
- /* if link_file exists, remove it, else create it*/
- if (!op_ret) {
- if (!check_is_linkfile (inode, stbuf, xattr))
- goto out;
- gf_log (this->name, GF_LOG_DEBUG, "link file exists."
- " Calling unlink on %s", loc->path);
- STACK_WIND (frame, dht_recreate_linkfile_unlink_cbk,
- dst_hashed, dst_hashed->fops->unlink,
- loc);
-
- } else if (op_errno == ENOENT) {
- gf_log (this->name, GF_LOG_DEBUG, "link file does not exist."
- " Proceeding to creation of linkfile %s", loc->path);
- dht_linkfile_create (frame, local->linkfile.linkfile_cbk,
- src_cached, dst_hashed, loc);
- } else {
- gf_log (this->name, GF_LOG_ERROR, "returned error %s",
- strerror(op_errno));
- local->op_ret = op_ret;
- local->op_errno = op_errno;
- goto out;
- }
-
- return 0;
-out:
- local->linkfile.linkfile_cbk (frame, NULL, frame->this, -1, EINVAL,
- loc->inode, NULL, NULL, NULL);
-err:
- return -1;
-}
-
-int
-dht_linkfile_recreate (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,
- xlator_t *tovol, xlator_t *fromvol, loc_t *loc)
-{
- dht_local_t *local = NULL;
-
- GF_VALIDATE_OR_GOTO ("dht", frame, out);
- GF_VALIDATE_OR_GOTO ("dht", loc, out);
- GF_VALIDATE_OR_GOTO ("dht", tovol, out);
- GF_VALIDATE_OR_GOTO ("dht", fromvol, out);
-
- local = frame->local;
- local->linkfile.linkfile_cbk = linkfile_cbk;
- local->linkfile.srcvol = tovol;
- loc_copy (&local->linkfile.loc, loc);
-
- STACK_WIND (frame, dht_linkfile_recreate_cbk,
- fromvol, fromvol->fops->lookup, loc, NULL);
-
- return 0;
-
-out:
- linkfile_cbk (frame, NULL, frame->this, -1, EINVAL, loc->inode, NULL,
- NULL, NULL);
-
- return -1;
-}