io_uring/register: have io_parse_restrictions() return number of ops

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>
This commit is contained in:
Jens Axboe
2026-01-12 08:14:41 -07:00
parent 130a827607
commit 51fff55a66

View 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)