Home | History | Annotate | Download | only in linux

Lines Matching defs:rw

1634  * INIT_RCU_WORK(rw, fn)
1636 * Initialize rw for use with a workqueue to call fn in a worker
1641 INIT_RCU_WORK(struct rcu_work *rw, void (*fn)(struct work_struct *))
1644 INIT_WORK(&rw->work, fn);
1650 struct rcu_work *rw = container_of(r, struct rcu_work, rw_rcu);
1651 struct workqueue_struct *wq = work_queue(&rw->work);
1654 KASSERT(work_pending(&rw->work));
1655 KASSERT(work_queue(&rw->work) == wq);
1656 destroy_rcu_head(&rw->rw_rcu);
1657 TAILQ_REMOVE(&wq->wq_rcu, &rw->work, work_entry);
1658 TAILQ_INSERT_TAIL(&wq->wq_queue, &rw->work, work_entry);
1660 SDT_PROBE2(sdt, linux, work, queue, &rw->work, wq);
1665 * queue_rcu_work(wq, rw)
1667 * Schedule rw to run on wq after an RCU grace period.
1670 queue_rcu_work(struct workqueue_struct *wq, struct rcu_work *rw)
1674 if (acquire_work(&rw->work, wq)) {
1675 init_rcu_head(&rw->rw_rcu);
1676 SDT_PROBE2(sdt, linux, work, rcu, rw, wq);
1677 TAILQ_INSERT_TAIL(&wq->wq_rcu, &rw->work, work_entry);
1678 call_rcu(&rw->rw_rcu, &queue_rcu_work_cb);