equal
deleted
inserted
replaced
121 |
121 |
122 extern struct pid *alloc_pid(struct pid_namespace *ns); |
122 extern struct pid *alloc_pid(struct pid_namespace *ns); |
123 extern void free_pid(struct pid *pid); |
123 extern void free_pid(struct pid *pid); |
124 |
124 |
125 /* |
125 /* |
|
126 * ns_of_pid() returns the pid namespace in which the specified pid was |
|
127 * allocated. |
|
128 * |
|
129 * NOTE: |
|
130 * ns_of_pid() is expected to be called for a process (task) that has |
|
131 * an attached 'struct pid' (see attach_pid(), detach_pid()) i.e @pid |
|
132 * is expected to be non-NULL. If @pid is NULL, caller should handle |
|
133 * the resulting NULL pid-ns. |
|
134 */ |
|
135 static inline struct pid_namespace *ns_of_pid(struct pid *pid) |
|
136 { |
|
137 struct pid_namespace *ns = NULL; |
|
138 if (pid) |
|
139 ns = pid->numbers[pid->level].ns; |
|
140 return ns; |
|
141 } |
|
142 |
|
143 /* |
126 * the helpers to get the pid's id seen from different namespaces |
144 * the helpers to get the pid's id seen from different namespaces |
127 * |
145 * |
128 * pid_nr() : global id, i.e. the id seen from the init namespace; |
146 * pid_nr() : global id, i.e. the id seen from the init namespace; |
129 * pid_vnr() : virtual id, i.e. the id seen from the pid namespace of |
147 * pid_vnr() : virtual id, i.e. the id seen from the pid namespace of |
130 * current. |
148 * current. |
145 pid_t pid_vnr(struct pid *pid); |
163 pid_t pid_vnr(struct pid *pid); |
146 |
164 |
147 #define do_each_pid_task(pid, type, task) \ |
165 #define do_each_pid_task(pid, type, task) \ |
148 do { \ |
166 do { \ |
149 struct hlist_node *pos___; \ |
167 struct hlist_node *pos___; \ |
150 if (pid != NULL) \ |
168 if ((pid) != NULL) \ |
151 hlist_for_each_entry_rcu((task), pos___, \ |
169 hlist_for_each_entry_rcu((task), pos___, \ |
152 &pid->tasks[type], pids[type].node) { |
170 &(pid)->tasks[type], pids[type].node) { |
153 |
171 |
154 /* |
172 /* |
155 * Both old and new leaders may be attached to |
173 * Both old and new leaders may be attached to |
156 * the same pid in the middle of de_thread(). |
174 * the same pid in the middle of de_thread(). |
157 */ |
175 */ |