converting cap_set_pg() to for_each_task_pid()
I have a pending patch that converts cap_set_pg() to the for_each_task_pid() API. Could you review this, and if it pass, include it in your tree?
Thanks,
Bill
cap_set_pg() wants to find all processes in a given process group. This converts it to use for_each_task_pid().
capability.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-)
kernel/capability.c +9 -7
@@ -84,13 +84,15 @@ static inline void cap_set_pg(int pgrp, kernel_cap_t *inheritable, kernel_cap_t *permitted) { -task_t *g, *target; - - do_each_thread(g, target) { -if (target->pgrp != pgrp) -continue ; -security_capset_set (target, effective, inheritable, permitted); - }while_each_thread (g, target); +task_t *g, *target; +struct list_head *l; +struct pid *pid; + +for_each_task_pid (pgrp,PIDTYPE_PGID , g, l, pid) { + target = g; + while_each_thread(g, target) +security_capset_set (target, effective, inheritable, permitted); + } }/*
Quoted 3 lines · William Lee Irwin III
I have a pending patch that converts
cap_set_pg()to thefor_each_task_pid()API. Could you review this, and if it pass, include it in your tree?
This is functionally the same, right?
And if so, why do the change, is this now faster somehow?
thanks,
greg k-h
Quoted 3 lines · William Lee Irwin III
Quoted 3 lines
I have a pending patch that converts
cap_set_pg()to thefor_each_task_pid()API. Could you review this, and if it pass, include it in your tree?
Quoted 2 lines · Greg KH
This is functionally the same, right?
And if so, why do the change, is this now faster somehow?
It is functionally equivalent. The motivation is not so much performance as API conversion. I am personally taking it upon myself to deprecate for_each_process() and do_each_thread() and update the mergeably correctible callers. The deprecation motives are both efficiency and correctness related.
It should improve performance in whatever sense performance is interesting from the point of view of this function; however, it is not motivated by that fact (and performance is not of interest with respect to most security functions). It is API conversion.
Thanks,
Bill
Quoted 3 lines · * William Lee Irwin III ([email protected]) wrote:
I have a pending patch that converts
cap_set_pg()to thefor_each_task_pid()API. Could you review this, and if it pass, include it in your tree?
I have no problem with this change.
-chris
Signature · 1 line
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net
Greg KH
AppliedQuoted 3 lines · William Lee Irwin III
I have a pending patch that converts
cap_set_pg()to thefor_each_task_pid()API. Could you review this, and if it pass, include it in your tree?
Applied to my tree, I'll send it to Linus in a bit.
thanks,
greg k-h