summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs/geo-replication/bug-1111490.t1
-rw-r--r--xlators/features/gfid-access/src/gfid-access.c47
2 files changed, 3 insertions, 45 deletions
diff --git a/tests/bugs/geo-replication/bug-1111490.t b/tests/bugs/geo-replication/bug-1111490.t
index 28291f25b9b..9686fb5a0ef 100644
--- a/tests/bugs/geo-replication/bug-1111490.t
+++ b/tests/bugs/geo-replication/bug-1111490.t
@@ -16,6 +16,7 @@ TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0 --aux-gfid-mount
# create file with specific gfid
uuid=`uuidgen`
+TEST chown 10:10 $M0
EXPECT "File creation OK" $PYTHON $(dirname $0)/../../utils/gfid-access.py \
$M0 ROOT file0 $uuid file 10 10 0644
diff --git a/xlators/features/gfid-access/src/gfid-access.c b/xlators/features/gfid-access/src/gfid-access.c
index 1c3ff849ebc..a714b66a34d 100644
--- a/xlators/features/gfid-access/src/gfid-access.c
+++ b/xlators/features/gfid-access/src/gfid-access.c
@@ -392,33 +392,6 @@ ga_heal_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
return 0;
}
-static int32_t
-ga_newentry_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *statpre,
- struct iatt *statpost,
- dict_t *xdata)
-{
- ga_local_t *local = NULL;
-
- local = frame->local;
- frame->local = NULL;
-
- /* don't worry about inode linking and other stuff. They'll happen on
- * the next lookup.
- */
- STACK_DESTROY (frame->root);
-
- STACK_UNWIND_STRICT (setxattr, local->orig_frame, op_ret,
- op_errno, xdata);
-
- if (local->xdata)
- dict_unref (local->xdata);
- loc_wipe (&local->loc);
- mem_put (local);
-
- return 0;
-}
-
static int
ga_newentry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno,
@@ -427,24 +400,9 @@ ga_newentry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
dict_t *xdata)
{
ga_local_t *local = NULL;
- struct iatt temp_stat = {0,};
local = frame->local;
- /* no need to proceed if things don't look good here */
- if (op_ret == -1)
- goto done;
-
- temp_stat.ia_uid = local->uid;
- temp_stat.ia_gid = local->gid;
-
- STACK_WIND (frame, ga_newentry_setattr_cbk, FIRST_CHILD (this),
- FIRST_CHILD (this)->fops->setattr, &local->loc, &temp_stat,
- (GF_SET_ATTR_UID | GF_SET_ATTR_GID), xdata);
-
- return 0;
-
-done:
/* don't worry about inode linking and other stuff. They'll happen on
* the next lookup.
*/
@@ -536,12 +494,11 @@ ga_new_entry (call_frame_t *frame, xlator_t *this, loc_t *loc, data_t *data,
local = mem_get0 (this->local_pool);
local->orig_frame = frame;
- local->uid = args->uid;
- local->gid = args->gid;
-
loc_copy (&local->loc, &tmp_loc);
new_frame->local = local;
+ new_frame->root->uid = args->uid;
+ new_frame->root->gid = args->gid;
if (S_ISDIR (args->st_mode)) {
STACK_WIND (new_frame, ga_newentry_cbk,