io_uring/rsrc: refactor io_queue_rsrc_removal
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 13 Apr 2023 14:28:14 +0000 (15:28 +0100)
committerJens Axboe <axboe@kernel.dk>
Sat, 15 Apr 2023 20:45:55 +0000 (14:45 -0600)
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>
io_uring/rsrc.c

index 38f0c9c..db58a51 100644 (file)
@@ -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;
 }