diff options
Diffstat (limited to 'xlators/cluster/dht/src/dht-rename.c')
-rw-r--r-- | xlators/cluster/dht/src/dht-rename.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/xlators/cluster/dht/src/dht-rename.c b/xlators/cluster/dht/src/dht-rename.c index 45808a2bfa..57a1a9f8b0 100644 --- a/xlators/cluster/dht/src/dht-rename.c +++ b/xlators/cluster/dht/src/dht-rename.c @@ -1828,33 +1828,14 @@ dht_rename(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, int op_errno = -1; int ret = -1; dht_local_t *local = NULL; - dht_conf_t *conf = NULL; char gfid[GF_UUID_BUF_SIZE] = {0}; char newgfid[GF_UUID_BUF_SIZE] = {0}; - gf_boolean_t free_xdata = _gf_false; VALIDATE_OR_GOTO(frame, err); VALIDATE_OR_GOTO(this, err); VALIDATE_OR_GOTO(oldloc, err); VALIDATE_OR_GOTO(newloc, err); - conf = this->private; - - if (conf->subvolume_cnt == 1) { - if (!IA_ISDIR(oldloc->inode->ia_type)) { - if (!xdata) { - free_xdata = _gf_true; - } - DHT_CHANGELOG_TRACK_AS_RENAME(xdata, oldloc, newloc); - } - default_rename(frame, this, oldloc, newloc, xdata); - if (free_xdata && xdata) { - dict_unref(xdata); - xdata = NULL; - } - return 0; - } - gf_uuid_unparse(oldloc->inode->gfid, gfid); src_hashed = dht_subvol_get_hashed(this, oldloc); @@ -1941,3 +1922,24 @@ err: return 0; } + +int +dht_pt_rename(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, + dict_t *xdata) +{ + gf_boolean_t free_xdata = _gf_false; + + /* Just a pass through */ + if (!IA_ISDIR(oldloc->inode->ia_type)) { + if (!xdata) { + free_xdata = _gf_true; + } + DHT_CHANGELOG_TRACK_AS_RENAME(xdata, oldloc, newloc); + } + default_rename(frame, this, oldloc, newloc, xdata); + if (free_xdata && xdata) { + dict_unref(xdata); + xdata = NULL; + } + return 0; +} |