]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
io_uring/register: have io_parse_restrictions() return number of ops
authorJens Axboe <axboe@kernel.dk>
Mon, 12 Jan 2026 15:14:41 +0000 (08:14 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 13 Jan 2026 17:30:41 +0000 (10:30 -0700)
Rather than return 0 on success, return >= 0 for success, where the
return value is that number of parsed entries. As before, any < 0
return is an error.

Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/register.c

index a3fef649272ba336ac9e7c020e6ed34f43c1ae9a..4d4e7420e7c6971010db97523619a9cd990c91ff 100644 (file)
@@ -103,6 +103,10 @@ static int io_register_personality(struct io_ring_ctx *ctx)
        return id;
 }
 
+/*
+ * Returns number of restrictions parsed and added on success, or < 0 for
+ * an error.
+ */
 static __cold int io_parse_restrictions(void __user *arg, unsigned int nr_args,
                                        struct io_restriction *restrictions)
 {
@@ -145,9 +149,7 @@ static __cold int io_parse_restrictions(void __user *arg, unsigned int nr_args,
                        goto err;
                }
        }
-
-       ret = 0;
-
+       ret = nr_args;
 err:
        kfree(res);
        return ret;
@@ -168,11 +170,12 @@ static __cold int io_register_restrictions(struct io_ring_ctx *ctx,
 
        ret = io_parse_restrictions(arg, nr_args, &ctx->restrictions);
        /* Reset all restrictions if an error happened */
-       if (ret != 0)
+       if (ret < 0) {
                memset(&ctx->restrictions, 0, sizeof(ctx->restrictions));
-       else
-               ctx->restrictions.registered = true;
-       return ret;
+               return ret;
+       }
+       ctx->restrictions.registered = true;
+       return 0;
 }
 
 static int io_register_enable_rings(struct io_ring_ctx *ctx)