Re: [PATCH 3/5] liburiung: add io_uring_prep_cmd_zone_reset
Caleb Sander Mateos <[email protected]> Wed, 15 Jul 2026 08:09:51 -0700
| Newsgroups | org.kernel.vger.io-uring |
|---|---|
| Message-ID | <CADUfDZpOmBJvr=C_DmRzn6rWTincKZVCsjF9CorWG3MHYQok3w@mail.gmail.com> |
In commit message, "liburiung" -> "liburing"? On Tue, Jul 14, 2026 at 11:44 PM Christoph Hellwig <[email protected]> wrote: > > Add a helper for io_uring zone_reset_all commands. > > Signed-off-by: Christoph Hellwig <[email protected]> > --- > configure | 31 +++++++++++++++++++++++++++++++ > src/include/liburing.h | 7 +++++++ > src/liburing-ffi.map | 5 +++++ > 3 files changed, 43 insertions(+) > > diff --git a/configure b/configure > index b953eddd6ddc..8c5ca801f487 100755 > --- a/configure > +++ b/configure > @@ -469,6 +469,21 @@ if compile_prog "" "" "discard command"; then > fi > print_config "discard command support" "$discard_cmd" > > +########################################## > +# Check block zone_reset_all cmd support > +zone_reset_all_cmd="no" > +cat > $TMPC << EOF > +#include <linux/blkdev.h> > +int main(void) > +{ > + return BLOCK_URING_CMD_ZONE_RESET_ALL; > +} > +EOF > +if compile_prog "" "" "zone_reset_all command"; then > + zone_reset_all_cmd="yes" > +fi > +print_config "zone_reset_all command support" "$zone_reset_all_cmd" > + > ########################################## > # Check idtype_t support > has_idtype_t="no" > @@ -797,6 +812,22 @@ else cat >> $compat_h << EOF > EOF > fi > > +if test "$zone_reset_all_cmd" != "yes"; then > +cat >> $compat_h << EOF > + > +#include <linux/ioctl.h> > + > +#ifndef BLOCK_URING_CMD_ZONE_RESET_ALL > +#define BLOCK_URING_CMD_ZONE_RESET_ALL _IO(0x12, 1) > +#endif > + > +EOF > +else cat >> $compat_h << EOF > +#include <linux/blkdev.h> > + > +EOF > +fi > + > cat >> $compat_h << EOF > #endif > EOF > diff --git a/src/include/liburing.h b/src/include/liburing.h > index 0188937b0de4..214c7778d6a7 100644 > --- a/src/include/liburing.h > +++ b/src/include/liburing.h > @@ -1685,6 +1685,13 @@ IOURINGINLINE void io_uring_prep_cmd_discard(struct io_uring_sqe *sqe, > sqe->addr3 = nbytes; > } > > +IOURINGINLINE void io_uring_prep_cmd_zone_reset_all(struct io_uring_sqe *sqe, > + int fd) > + LIBURING_NOEXCEPT > +{ > + io_uring_prep_uring_cmd(sqe, BLOCK_URING_CMD_ZONE_RESET_ALL, fd); > +} > + > IOURINGINLINE void io_uring_prep_pipe(struct io_uring_sqe *sqe, int *fds, > int pipe_flags) > { > diff --git a/src/liburing-ffi.map b/src/liburing-ffi.map > index bd7bc64416d3..fc9701b63907 100644 > --- a/src/liburing-ffi.map > +++ b/src/liburing-ffi.map > @@ -275,3 +275,8 @@ LIBURING_2.15 { > io_uring_register_zcrx_ctrl; > io_uring_register_query; > } LIBURING_2.14; > + > +LIBURING_2.16 { > + global: > + io_uring_prep_cmd_zone_reset_all; > +} LIBURING_2.14; Does this 2.14 not need to be incremented to 2.15? Best, Caleb