Re: [PATCH] block/blkio: Fix inclusion of required headers

2023-01-23 Thread Stefan Hajnoczi
On Mon, Jan 23, 2023 at 01:39:27PM +0100, Peter Krempa wrote:
> After recent header file inclusion rework the build fails when the blkio
> module is enabled:
> 
> ../block/blkio.c: In function ‘blkio_detach_aio_context’:
> ../block/blkio.c:321:24: error: implicit declaration of function 
> ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? 
> [-Werror=implicit-function-declaration]
>   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
>   |^~~~
>   |qemu_get_aio_context
> ../block/blkio.c:321:24: error: nested extern declaration of 
> ‘bdrv_get_aio_context’ [-Werror=nested-externs]
> ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ 
> makes pointer from integer without a cast [-Werror=int-conversion]
>   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
>   |^~~~
>   ||
>   |int
> In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33,
>  from /home/pipo/git/qemu.git/include/block/blockjob.h:30,
>  from 
> /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28,
>  from /home/pipo/git/qemu.git/include/block/block_int.h:27,
>  from ../block/blkio.c:13:
> /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected 
> ‘AioContext *’ but argument is of type ‘int’
>   476 | void aio_set_fd_handler(AioContext *ctx,
>   | ^~~
> ../block/blkio.c: In function ‘blkio_file_open’:
> ../block/blkio.c:821:34: error: passing argument 2 of 
> ‘blkio_attach_aio_context’ makes pointer from integer without a cast 
> [-Werror=int-conversion]
>   821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs));
>   |  ^~~~
>   |  |
>   |  int
> 
> Fix it by including 'block/block-io.h' which contains the required
> declarations.
> 
> Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312
> Signed-off-by: Peter Krempa 
> ---
>  block/blkio.c | 2 ++
>  1 file changed, 2 insertions(+)

Thanks, applied to my block-next tree:
https://gitlab.com/stefanha/qemu/commits/block-next

Stefan


signature.asc
Description: PGP signature


Re: [PATCH] block/blkio: Fix inclusion of required headers

2023-01-23 Thread Markus Armbruster
Peter Krempa  writes:

> After recent header file inclusion rework the build fails when the blkio
> module is enabled:
>
> ../block/blkio.c: In function ‘blkio_detach_aio_context’:
> ../block/blkio.c:321:24: error: implicit declaration of function 
> ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? 
> [-Werror=implicit-function-declaration]
>   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
>   |^~~~
>   |qemu_get_aio_context
> ../block/blkio.c:321:24: error: nested extern declaration of 
> ‘bdrv_get_aio_context’ [-Werror=nested-externs]
> ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ 
> makes pointer from integer without a cast [-Werror=int-conversion]
>   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
>   |^~~~
>   ||
>   |int
> In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33,
>  from /home/pipo/git/qemu.git/include/block/blockjob.h:30,
>  from 
> /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28,
>  from /home/pipo/git/qemu.git/include/block/block_int.h:27,
>  from ../block/blkio.c:13:
> /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected 
> ‘AioContext *’ but argument is of type ‘int’
>   476 | void aio_set_fd_handler(AioContext *ctx,
>   | ^~~
> ../block/blkio.c: In function ‘blkio_file_open’:
> ../block/blkio.c:821:34: error: passing argument 2 of 
> ‘blkio_attach_aio_context’ makes pointer from integer without a cast 
> [-Werror=int-conversion]
>   821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs));
>   |  ^~~~
>   |  |
>   |  int
>

My apologies...

Why are modules disabled by default?

> Fix it by including 'block/block-io.h' which contains the required
> declarations.
>
> Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312
> Signed-off-by: Peter Krempa 
> ---
>  block/blkio.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/block/blkio.c b/block/blkio.c
> index 5eae3adfaf..6ad86b23d1 100644
> --- a/block/blkio.c
> +++ b/block/blkio.c
> @@ -19,6 +19,8 @@
>  #include "qemu/module.h"
>  #include "exec/memory.h" /* for ram_block_discard_disable() */
>
> +#include "block/block-io.h"
> +
>  /*
>   * Keep the QEMU BlockDriver names identical to the libblkio driver names.
>   * Using macros instead of typing out the string literals avoids typos.

Reviewed-by: Markus Armbruster 




Re: [PATCH] block/blkio: Fix inclusion of required headers

2023-01-23 Thread Peter Krempa
On Mon, Jan 23, 2023 at 15:01:37 +0100, Markus Armbruster wrote:
> Peter Krempa  writes:
> 
> > After recent header file inclusion rework the build fails when the blkio
> > module is enabled:
> >
> > ../block/blkio.c: In function ‘blkio_detach_aio_context’:
> > ../block/blkio.c:321:24: error: implicit declaration of function 
> > ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? 
> > [-Werror=implicit-function-declaration]
> >   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
> >   |^~~~
> >   |qemu_get_aio_context
> > ../block/blkio.c:321:24: error: nested extern declaration of 
> > ‘bdrv_get_aio_context’ [-Werror=nested-externs]
> > ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ 
> > makes pointer from integer without a cast [-Werror=int-conversion]
> >   321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
> >   |^~~~
> >   ||
> >   |int
> > In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33,
> >  from /home/pipo/git/qemu.git/include/block/blockjob.h:30,
> >  from 
> > /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28,
> >  from /home/pipo/git/qemu.git/include/block/block_int.h:27,
> >  from ../block/blkio.c:13:
> > /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected 
> > ‘AioContext *’ but argument is of type ‘int’
> >   476 | void aio_set_fd_handler(AioContext *ctx,
> >   | ^~~
> > ../block/blkio.c: In function ‘blkio_file_open’:
> > ../block/blkio.c:821:34: error: passing argument 2 of 
> > ‘blkio_attach_aio_context’ makes pointer from integer without a cast 
> > [-Werror=int-conversion]
> >   821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs));
> >   |  ^~~~
> >   |  |
> >   |  int
> >
> 
> My apologies...
> 
> Why are modules disabled by default?

libblkio is too new and is not yet packaged too widely. IIUC it's
supposed to be included e.g. in Fedora 38, so you most likely don't have
the dependancy.

I actually installed it explicitly since I wanted to give it a try.




[PATCH] block/blkio: Fix inclusion of required headers

2023-01-23 Thread Peter Krempa
After recent header file inclusion rework the build fails when the blkio
module is enabled:

../block/blkio.c: In function ‘blkio_detach_aio_context’:
../block/blkio.c:321:24: error: implicit declaration of function 
‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? 
[-Werror=implicit-function-declaration]
  321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
  |^~~~
  |qemu_get_aio_context
../block/blkio.c:321:24: error: nested extern declaration of 
‘bdrv_get_aio_context’ [-Werror=nested-externs]
../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ 
makes pointer from integer without a cast [-Werror=int-conversion]
  321 | aio_set_fd_handler(bdrv_get_aio_context(bs),
  |^~~~
  ||
  |int
In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33,
 from /home/pipo/git/qemu.git/include/block/blockjob.h:30,
 from 
/home/pipo/git/qemu.git/include/block/block_int-global-state.h:28,
 from /home/pipo/git/qemu.git/include/block/block_int.h:27,
 from ../block/blkio.c:13:
/home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected ‘AioContext 
*’ but argument is of type ‘int’
  476 | void aio_set_fd_handler(AioContext *ctx,
  | ^~~
../block/blkio.c: In function ‘blkio_file_open’:
../block/blkio.c:821:34: error: passing argument 2 of 
‘blkio_attach_aio_context’ makes pointer from integer without a cast 
[-Werror=int-conversion]
  821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs));
  |  ^~~~
  |  |
  |  int

Fix it by including 'block/block-io.h' which contains the required
declarations.

Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312
Signed-off-by: Peter Krempa 
---
 block/blkio.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/block/blkio.c b/block/blkio.c
index 5eae3adfaf..6ad86b23d1 100644
--- a/block/blkio.c
+++ b/block/blkio.c
@@ -19,6 +19,8 @@
 #include "qemu/module.h"
 #include "exec/memory.h" /* for ram_block_discard_disable() */

+#include "block/block-io.h"
+
 /*
  * Keep the QEMU BlockDriver names identical to the libblkio driver names.
  * Using macros instead of typing out the string literals avoids typos.
-- 
2.38.1