mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 02:27:02 +07:00
RDMA/nldev: Factor out the PID namespace check
The PID namespace is going to be used in the .doit callback, so generalize its implementation. Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
f732e7135b
commit
8be565e65f
@ -943,6 +943,17 @@ static const struct nldev_fill_res_entry fill_entries[RDMA_RESTRACK_MAX] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool is_visible_in_pid_ns(struct rdma_restrack_entry *res)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* 1. Kern resources should be visible in init name space only
|
||||||
|
* 2. Present only resources visible in the current namespace
|
||||||
|
*/
|
||||||
|
if (rdma_is_kernel_res(res))
|
||||||
|
return task_active_pid_ns(current) == &init_pid_ns;
|
||||||
|
return task_active_pid_ns(current) == task_active_pid_ns(res->task);
|
||||||
|
}
|
||||||
|
|
||||||
static int res_get_common_dumpit(struct sk_buff *skb,
|
static int res_get_common_dumpit(struct sk_buff *skb,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
enum rdma_restrack_type res_type)
|
enum rdma_restrack_type res_type)
|
||||||
@ -1007,16 +1018,7 @@ static int res_get_common_dumpit(struct sk_buff *skb,
|
|||||||
if (idx < start)
|
if (idx < start)
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
if ((rdma_is_kernel_res(res) &&
|
if (!is_visible_in_pid_ns(res))
|
||||||
task_active_pid_ns(current) != &init_pid_ns) ||
|
|
||||||
(!rdma_is_kernel_res(res) && task_active_pid_ns(current) !=
|
|
||||||
task_active_pid_ns(res->task)))
|
|
||||||
/*
|
|
||||||
* 1. Kern resources should be visible in init
|
|
||||||
* namspace only
|
|
||||||
* 2. Present only resources visible in the current
|
|
||||||
* namespace
|
|
||||||
*/
|
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
if (!rdma_restrack_get(res))
|
if (!rdma_restrack_get(res))
|
||||||
|
Loading…
Reference in New Issue
Block a user