diff options
author | Anand Avati <avati@redhat.com> | 2014-01-27 00:58:45 -0800 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2014-02-13 11:19:33 -0800 |
commit | 3571066deedfe858ef37f09d6ad2160e5dd7b803 (patch) | |
tree | 091a19547d889a41dff6b6fa980f546f15324f0a /libglusterfs/src/syncop.h | |
parent | 7b4d6e3ec61e9cb0b9d0ffa0aef2117b96e63f65 (diff) |
syncops: add support for custom PID
AFR self-heal needs to issue syncops with special PID. Extend
the custom UID/GID support to include custom PIDs
Change-Id: I736c0e177f862b029f203acc87f9eb46c8cb839b
BUG: 1021686
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/6888
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Diffstat (limited to 'libglusterfs/src/syncop.h')
-rw-r--r-- | libglusterfs/src/syncop.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libglusterfs/src/syncop.h b/libglusterfs/src/syncop.h index 574918b9c13..16f3833ba82 100644 --- a/libglusterfs/src/syncop.h +++ b/libglusterfs/src/syncop.h @@ -31,6 +31,7 @@ #define SYNCOPCTX_UID 0x00000001 #define SYNCOPCTX_GID 0x00000002 #define SYNCOPCTX_GROUPS 0x00000004 +#define SYNCOPCTX_PID 0x00000008 struct synctask; struct syncproc; @@ -164,6 +165,7 @@ struct syncopctx { int grpsize; int ngrps; gid_t *groups; + pid_t pid; }; #define __yawn(args) do { \ @@ -260,6 +262,7 @@ int synctask_setid (struct synctask *task, uid_t uid, gid_t gid); int syncopctx_setfsuid (void *uid); int syncopctx_setfsgid (void *gid); int syncopctx_setfsgroups (int count, const void *groups); +int syncopctx_setfspid (void *pid); static inline call_frame_t * syncop_create_frame (xlator_t *this) @@ -272,9 +275,13 @@ syncop_create_frame (xlator_t *this) if (!frame) return NULL; - frame->root->pid = getpid (); - opctx = syncopctx_getctx (); + + if (opctx && (opctx->valid & SYNCOPCTX_PID)) + frame->root->pid = opctx->pid; + else + frame->root->pid = getpid (); + if (opctx && (opctx->valid & SYNCOPCTX_UID)) frame->root->uid = opctx->uid; else |