]> www.infradead.org Git - users/hch/misc.git/commitdiff
io_uring/rsrc: remove '->ctx_ptr' of 'struct io_rsrc_node'
authorMing Lei <ming.lei@redhat.com>
Thu, 7 Nov 2024 11:01:35 +0000 (19:01 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 7 Nov 2024 22:24:33 +0000 (15:24 -0700)
Remove '->ctx_ptr' of 'struct io_rsrc_node', and add 'type' field,
meantime remove io_rsrc_node_type().

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20241107110149.890530-3-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/rsrc.c
io_uring/rsrc.h

index d7db36a2c66e5c2c8f810edeb94eb940d40dd793..adaae86309322e5efbee6831fe8253588025aa67 100644 (file)
@@ -124,7 +124,7 @@ struct io_rsrc_node *io_rsrc_node_alloc(struct io_ring_ctx *ctx, int type)
 
        node = kzalloc(sizeof(*node), GFP_KERNEL);
        if (node) {
-               node->ctx_ptr = (unsigned long) ctx | type;
+               node->type = type;
                node->refs = 1;
        }
        return node;
@@ -449,7 +449,7 @@ void io_free_rsrc_node(struct io_ring_ctx *ctx, struct io_rsrc_node *node)
        if (node->tag)
                io_post_aux_cqe(ctx, node->tag, 0, 0);
 
-       switch (io_rsrc_node_type(node)) {
+       switch (node->type) {
        case IORING_RSRC_FILE:
                if (io_slot_file(node))
                        fput(io_slot_file(node));
index c9057f7a06f503ce09c7c48177f473d43b212e49..c8a64a9ed5b9e3424c72978483f80b115b594d73 100644 (file)
 enum {
        IORING_RSRC_FILE                = 0,
        IORING_RSRC_BUFFER              = 1,
-
-       IORING_RSRC_TYPE_MASK           = 0x3UL,
 };
 
 struct io_rsrc_node {
-       unsigned long                   ctx_ptr;
+       unsigned char                   type;
        int                             refs;
 
        u64 tag;
@@ -106,11 +104,6 @@ static inline void io_req_put_rsrc_nodes(struct io_kiocb *req)
        }
 }
 
-static inline int io_rsrc_node_type(struct io_rsrc_node *node)
-{
-       return node->ctx_ptr & IORING_RSRC_TYPE_MASK;
-}
-
 static inline void io_req_assign_rsrc_node(struct io_rsrc_node **dst_node,
                                           struct io_rsrc_node *node)
 {