From 98bd66d16730964b2c6d14d5430e23dd16138193 Mon Sep 17 00:00:00 2001 From: N Balachandran Date: Wed, 22 Nov 2017 08:47:47 +0530 Subject: [PATCH 081/128] cluster/dht: Don't set ACLs on linkto file The trusted.SGI_ACL_FILE appears to set posix ACLs on the linkto file that is a target of file migration. This can mess up file permissions and cause linkto identification to fail. Now we remove all ACL xattrs from the results of the listxattr call on the source before setting them on the target. > BUG: 1515042 > https://review.gluster.org/#/c/18807/ > Signed-off-by: N Balachandran Change-Id: I56802dbaed783a16e3fb90f59f4ce849f8a4a9b4 BUG: 1515051 Signed-off-by: N Balachandran Reviewed-on: https://code.engineering.redhat.com/gerrit/123870 Tested-by: RHGS Build Bot Reviewed-by: Atin Mukherjee --- xlators/cluster/dht/src/dht-rebalance.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 941e982..ae367d7 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -163,6 +163,14 @@ dht_send_rebalance_event (xlator_t *this, int cmd, gf_defrag_status_t status) } +static void +dht_strip_out_acls (dict_t *dict) +{ + if (dict) { + dict_del (dict, "trusted.SGI_ACL_FILE"); + dict_del (dict, "POSIX_ACL_ACCESS_XATTR"); + } +} @@ -1624,6 +1632,9 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to, loc->path, from->name); } + /* Copying posix acls to the linkto file messes up the permissions*/ + dht_strip_out_acls (xattr); + /* create the destination, with required modes/xattr */ ret = __dht_rebalance_create_dst_file (this, to, from, loc, &stbuf, &dst_fd, xattr, fop_errno); -- 1.8.3.1