io-wq: fix error path leak of buffered write hash map
authorJens Axboe <axboe@kernel.dk>
Mon, 1 Mar 2021 16:09:56 +0000 (09:09 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 4 Mar 2021 13:37:59 +0000 (06:37 -0700)
The 'err' path should include the hash put, we already grabbed a reference
once we get that far.

Fixes: e941894eae31 ("io-wq: make buffered file write hashed work map per-ctx")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io-wq.c

index 946826b..dc43038 100644 (file)
@@ -1047,8 +1047,8 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data)
        if (!ret)
                return wq;
 
-       io_wq_put_hash(data->hash);
 err:
+       io_wq_put_hash(data->hash);
        cpuhp_state_remove_instance_nocalls(io_wq_online, &wq->cpuhp_node);
        for_each_node(node)
                kfree(wq->wqes[node]);