diff options
author | Kotresh HR <khiremat@redhat.com> | 2015-09-15 16:56:01 +0530 |
---|---|---|
committer | Venky Shankar <vshankar@redhat.com> | 2015-11-10 02:22:23 -0800 |
commit | c0522295f42c57565610d186da1400730b6a68d1 (patch) | |
tree | 896c7820e3d98574997ee8dccd2894672e776f67 /tests | |
parent | 4ac2ff18db62db192c49affd8591e846c810667a (diff) |
features/gfid-access: Fix entry creation via setxattr for geo-rep
GEO-REP INTEROP WITH SHARD FEATURE
Problem:
Geo-replication uses setxattr interface of gfid-access
xlator to create entries and send explicit setattr
after entry creation to set uid and gid. But between
entry creation and setattr, the inode would not be
linked. Hence operation which accesses inode structure
during setattr by any the below xlator fails.
Solution:
Linking inode would seem the obvious solution but,
gfid-access xlator cannot link inodes and maintain
it as it would result in same inode pointing
to two different paths one being virtual .gfid/<gfid>
path and other being actual path.
The solution is to set uid and gid in frame->root->uid
and frame->root->gid respectively from which posix
extracts and sets.
Change-Id: Ic0749ee471432caeb8ded3152a07de6e64d8538d
BUG: 1265148
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-on: http://review.gluster.org/12206
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Aravinda VK <avishwan@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs/geo-replication/bug-1111490.t | 1 |
1 files changed, 1 insertions, 0 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 |