2021-10-19 15:37:43

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] [v2] io_uring: warning about unused-but-set parameter

From: Arnd Bergmann <[email protected]>

When enabling -Wunused warnings by building with W=1, I get an
instance of the -Wunused-but-set-parameter warning in the io_uring code:

fs/io_uring.c: In function 'io_queue_async_work':
fs/io_uring.c:1445:61: error: parameter 'locked' set but not used [-Werror=unused-but-set-parameter]
1445 | static void io_queue_async_work(struct io_kiocb *req, bool *locked)
| ~~~~~~^~~~~~

There are very few warnings of this type, so it would be nice to enable
this by default and fix all the existing instances. As the assignment
serves no purpose by itself other than to prevent developers from using
the variable, an easy workaround is to remove the assignment and just
rename the argument to "dont_use".

Fixes: f237c30a5610 ("io_uring: batch task work locking")
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Arnd Bergmann <[email protected]>
---
Changes in v2:
- remove the assignment altogether
- rename the parameter
---
fs/io_uring.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/fs/io_uring.c b/fs/io_uring.c
index be307360d1b0..8d9e208957fd 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -1521,15 +1521,12 @@ static inline void io_req_add_compl_list(struct io_kiocb *req)
wq_list_add_tail(&req->comp_list, &state->compl_reqs);
}

-static void io_queue_async_work(struct io_kiocb *req, bool *locked)
+static void io_queue_async_work(struct io_kiocb *req, bool *dont_use)
{
struct io_ring_ctx *ctx = req->ctx;
struct io_kiocb *link = io_prep_linked_timeout(req);
struct io_uring_task *tctx = req->task->io_uring;

- /* must not take the lock, NULL it as a precaution */
- locked = NULL;
-
BUG_ON(!tctx);
BUG_ON(!tctx->io_wq);

--
2.29.2


2021-10-19 15:51:57

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] [v2] io_uring: warning about unused-but-set parameter

On Tue, 19 Oct 2021 17:34:53 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> When enabling -Wunused warnings by building with W=1, I get an
> instance of the -Wunused-but-set-parameter warning in the io_uring code:
>
> fs/io_uring.c: In function 'io_queue_async_work':
> fs/io_uring.c:1445:61: error: parameter 'locked' set but not used [-Werror=unused-but-set-parameter]
> 1445 | static void io_queue_async_work(struct io_kiocb *req, bool *locked)
> | ~~~~~~^~~~~~
>
> [...]

Applied, thanks!

[1/1] io_uring: warning about unused-but-set parameter
commit: 00169246e6981752e53266c62d0ab0c827493634

Best regards,
--
Jens Axboe