summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libglusterfs/src/stack.h3
-rw-r--r--xlators/cluster/dht/src/dht-common.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/libglusterfs/src/stack.h b/libglusterfs/src/stack.h
index 8d58e4daab9..cda04dfdb29 100644
--- a/libglusterfs/src/stack.h
+++ b/libglusterfs/src/stack.h
@@ -232,8 +232,10 @@ STACK_RESET(call_stack_t *stack)
local_type *__local = (frm)->local; \
__local->uid = frm->root->uid; \
__local->gid = frm->root->gid; \
+ __local->pid = frm->root->pid; \
frm->root->uid = 0; \
frm->root->gid = 0; \
+ frm->root->pid = GF_CLIENT_PID_NO_ROOT_SQUASH; \
} while (0);
#define FRAME_SU_UNDO(frm, local_type) \
@@ -241,6 +243,7 @@ STACK_RESET(call_stack_t *stack)
local_type *__local = (frm)->local; \
frm->root->uid = __local->uid; \
frm->root->gid = __local->gid; \
+ frm->root->pid = __local->pid; \
} while (0);
/* NOTE: make sure to keep this as an macro, mainly because, we need 'fn'
diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h
index cc1e1f02912..7d813b1acc8 100644
--- a/xlators/cluster/dht/src/dht-common.h
+++ b/xlators/cluster/dht/src/dht-common.h
@@ -323,6 +323,7 @@ struct dht_local {
uint32_t uid;
uint32_t gid;
+ pid_t pid;
/* needed by nufa */
int32_t flags;