io_uring/rsrc: refactor io_queue_rsrc_removal
We can queue up a rsrc into a list in io_queue_rsrc_removal() while allocating io_rsrc_put and so simplify the function. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/36bd708ee25c0e2e7992dc19b17db166eea9ac40.1681395792.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
c87fd583f3
commit
c899a5d7d0
@ -685,7 +685,6 @@ int io_queue_rsrc_removal(struct io_rsrc_data *data, unsigned idx,
|
||||
{
|
||||
u64 *tag_slot = io_get_tag_slot(data, idx);
|
||||
struct io_rsrc_put *prsrc;
|
||||
bool inline_item = true;
|
||||
|
||||
if (!node->inline_items) {
|
||||
prsrc = &node->item;
|
||||
@ -694,14 +693,12 @@ int io_queue_rsrc_removal(struct io_rsrc_data *data, unsigned idx,
|
||||
prsrc = kzalloc(sizeof(*prsrc), GFP_KERNEL);
|
||||
if (!prsrc)
|
||||
return -ENOMEM;
|
||||
inline_item = false;
|
||||
list_add(&prsrc->list, &node->item_list);
|
||||
}
|
||||
|
||||
prsrc->tag = *tag_slot;
|
||||
*tag_slot = 0;
|
||||
prsrc->rsrc = rsrc;
|
||||
if (!inline_item)
|
||||
list_add(&prsrc->list, &node->item_list);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user