Blob Blame History Raw
From af0269a4bd909e80a735543401c748aba17f3fb1 Mon Sep 17 00:00:00 2001
From: Pranith Kumar K <pkarampu@redhat.com>
Date: Tue, 3 Jan 2017 12:50:54 +0530
Subject: [PATCH 264/267] cluster/dht: Do rename cleanup as root

Problem:
Rename linkfile cleanup is done as non-root which may not have priviliges to do
the rename so it fails with EACCESS. MKDIR on that name in future will start to
hole on this subvolume. It is not easy to hit on fuse mounts because vfs takes
care of the permission checks even before rename fop is wound. But with
nfs-ganesha mounts it happens.

Fix:
Do rename cleanup as root

 >BUG: 1409727
 >Change-Id: I414c1eb6dce76b4516a6c940557b249e6c3f22f4
 >Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
 >Reviewed-on: http://review.gluster.org/16317
 >Smoke: Gluster Build System <jenkins@build.gluster.org>
 >CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
 >Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
 >Reviewed-by: N Balachandran <nbalacha@redhat.com>
 >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>

BUG: 1408413
Change-Id: I062b5a02437bcfbc25fdf6830566655a4c74a3fd
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/94321
---
 xlators/cluster/dht/src/dht-rename.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xlators/cluster/dht/src/dht-rename.c b/xlators/cluster/dht/src/dht-rename.c
index a9ffd1d..d955ee4 100644
--- a/xlators/cluster/dht/src/dht-rename.c
+++ b/xlators/cluster/dht/src/dht-rename.c
@@ -724,6 +724,7 @@ dht_rename_cleanup (call_frame_t *frame)
 
                 DHT_MARKER_DONT_ACCOUNT(xattr_new);
 
+                FRAME_SU_DO (frame, dht_local_t);
                 STACK_WIND (frame, dht_rename_unlink_cbk,
                             dst_hashed, dst_hashed->fops->unlink,
                             &local->loc, 0, xattr_new);
-- 
2.9.3