Commit 3b094e72 authored by Jens Axboe's avatar Jens Axboe

io-wq: get rid of wq->use_refs

We don't support attach anymore, so doesn't make sense to carry the
use_refs reference count. Get rid of it.
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent d25e3a3d
...@@ -122,8 +122,6 @@ struct io_wq { ...@@ -122,8 +122,6 @@ struct io_wq {
struct completion done; struct completion done;
struct hlist_node cpuhp_node; struct hlist_node cpuhp_node;
refcount_t use_refs;
}; };
static enum cpuhp_state io_wq_online; static enum cpuhp_state io_wq_online;
...@@ -1086,7 +1084,6 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data) ...@@ -1086,7 +1084,6 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data)
ret = -ENOMEM; ret = -ENOMEM;
goto err; goto err;
} }
refcount_set(&wq->use_refs, 1);
reinit_completion(&wq->done); reinit_completion(&wq->done);
return wq; return wq;
} }
...@@ -1104,15 +1101,7 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data) ...@@ -1104,15 +1101,7 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data)
return ERR_PTR(ret); return ERR_PTR(ret);
} }
bool io_wq_get(struct io_wq *wq, struct io_wq_data *data) void io_wq_destroy(struct io_wq *wq)
{
if (data->free_work != wq->free_work || data->do_work != wq->do_work)
return false;
return refcount_inc_not_zero(&wq->use_refs);
}
static void __io_wq_destroy(struct io_wq *wq)
{ {
int node; int node;
...@@ -1135,12 +1124,6 @@ static void __io_wq_destroy(struct io_wq *wq) ...@@ -1135,12 +1124,6 @@ static void __io_wq_destroy(struct io_wq *wq)
kfree(wq); kfree(wq);
} }
void io_wq_destroy(struct io_wq *wq)
{
if (refcount_dec_and_test(&wq->use_refs))
__io_wq_destroy(wq);
}
static bool io_wq_worker_affinity(struct io_worker *worker, void *data) static bool io_wq_worker_affinity(struct io_worker *worker, void *data)
{ {
struct task_struct *task = worker->task; struct task_struct *task = worker->task;
......
...@@ -108,7 +108,6 @@ struct io_wq_data { ...@@ -108,7 +108,6 @@ struct io_wq_data {
}; };
struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data); struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data);
bool io_wq_get(struct io_wq *wq, struct io_wq_data *data);
void io_wq_destroy(struct io_wq *wq); void io_wq_destroy(struct io_wq *wq);
void io_wq_enqueue(struct io_wq *wq, struct io_wq_work *work); void io_wq_enqueue(struct io_wq *wq, struct io_wq_work *work);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment