Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 699a9c54 authored by Mark Zhang's avatar Mark Zhang Committed by Jason Gunthorpe
Browse files

RDMA/restrack: Add an API to attach a task to a resource



Add rdma_restrack_attach_task() which is able to attach a task other then
"current" to a resource.

Signed-off-by: default avatarMark Zhang <markz@mellanox.com>
Reviewed-by: default avatarMajd Dibbiny <majd@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 7ade1ff9
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -194,6 +194,20 @@ void rdma_restrack_set_task(struct rdma_restrack_entry *res,
}
EXPORT_SYMBOL(rdma_restrack_set_task);

/**
 * rdma_restrack_attach_task() - attach the task onto this resource
 * @res:  resource entry
 * @task: the task to attach, the current task will be used if it is NULL.
 */
void rdma_restrack_attach_task(struct rdma_restrack_entry *res,
			       struct task_struct *task)
{
	if (res->task)
		put_task_struct(res->task);
	get_task_struct(task);
	res->task = task;
}

static void rdma_restrack_add(struct rdma_restrack_entry *res)
{
	struct ib_device *dev = res_to_dev(res);
+2 −0
Original line number Diff line number Diff line
@@ -25,4 +25,6 @@ struct rdma_restrack_root {

int rdma_restrack_init(struct ib_device *dev);
void rdma_restrack_clean(struct ib_device *dev);
void rdma_restrack_attach_task(struct rdma_restrack_entry *res,
			       struct task_struct *task);
#endif /* _RDMA_CORE_RESTRACK_H_ */