liburing (2.1-2+0~20211231043611.4+buster~1.gbpa59758) unstable; urgency=medium

  ** SNAPSHOT build @a597581f6cc6a94c0869983cb1a88c983c601f88 **

  [ Jens Axboe ]
  * Initial commit
  * Add option for getting a completion without waiting
  * liburing: add io_uring_iocb_from_ev() helper
  * Change API to provide io_uring struct abstraction
  * Add sample 'cp' program
  * Add simple test/ Makefile
  * liburing: include the ring fd in the io_uring
  * Update to newer API
  * Update API
  * Update to newer API
  * Fix test cases
  * io_queue_init: pass in flags, not io_uring_params
  * Sync with kernel API
  * Sync io_uring.h with the kernel
  * io_uring_get_iocb() -> io_uring_get_sqe()
  * Add x86 32-bit support
  * Add configure script
  * Sync with upstream API
  * Update barriers for x86/x86-64
  * Add test case for IORING_OP_POLL
  * Add IORING_OP_POLL_CANCEL test
  * Update POLL API
  * Add sqe prep helpers
  * 32-bit fixes
  * liburing: ensure prep helpers actually set iovec count
  * Split src/io_uring.c up
  * Switch to IORING_OP_POLL_ADD/REMOVE
  * test/poll-cancel: improve test case
  * test/poll: simply test case
  * test/poll: ignore parent dying
  * System calls have been renumbered
  * Update kernel io_uring header
  * man/io_uring_enter.2: we no longer EBUSY on mutex trylock failure
  * src/io_uring.h: sync with kernel header
  * man/io_uring_setup: mention that IORING_SETUP_SQPOLL needs fixed files
  * test/ring-leak: add test app demonstrating leak of io_uring instance
  * man/io_uring_register.2: add EMFILE errno
  * syscall: update io_uring_enter() to match kernel type
  * test/ring-leak: silence "sending fd" message
  * io_uring_enter: don't expose sigset_size argument
  * test/fsync: add simple fsync tester
  * man/io_uring_register: make note of huge page pinning
  * src/queue: add comments on the read and write barriers
  * Sync io_uring.h with the kernel
  * man/io_uring_enter: mention that SQE entries are always fully consumed
  * man/io_uring_enter.2: add mention of -EMFILE for fixed file sets
  * man/io_uring_enter.2: clarify -EMFILE per-user case
  * src/queue: kill bogus ktail_next == head check
  * Add read/write fixed prep support
  * Makefile: add cscope target
  * queue: ensure io_uring_submit() returns the right error
  * test/io_uring-cp: make it more efficient
  * Add generated files to .gitignore
  * test/io_uring-cp: add some comments
  * queue: ensure io_uring_submit() returns the system call value
  * Remove IOCQE_FLAG_CACHEHIT
  * Add barrier fsync test case
  * Use io_uring_cqe_get_data() internally
  * man/io_uring_setup.2: add EPERM case for IORING_SETUP_SQPOLL
  * test/fsync: update for IOSQE_IO_DRAIN approach
  * test/fsync: error out if we submit less than we wanted
  * test/nop: add NOP test case
  * Add SQ/CQ overflow tests
  * Add io_uring_cqe_seen()
  * Separate test cases from examples
  * Rename completion helpers
  * man/io_uring_register.2: add another ENXIO case
  * man/io_uring_enter.2: add another ENOTSUPP instance
  * Actually add test/runtests.sh
  * Add regression test cases for three recent issues
  * Add test case for -EAGAIN issue
  * test/runtests.sh: list all failed tests when done
  * Update tests for 'sqe submit always posts a cqe'
  * test/eeed8b54e0df-test: check write(2) return value
  * man/io_uring_enter.2: clarify io_uring_enter(2) return values
  * test/io_uring_setup: don't fail SQPOLL test case for non-root
  * test/eeed8b54e0df-test: define RWF_NOWAIT if we don't have it
  * Add link SQE support
  * Add chain failure handling test case
  * test/io_uring_register: don't fail max fd test if we run out of mem
  * examples/link-cp: fix a few issues
  * examples/link-cp: improvements
  * examples/link-cp: improve memory use
  * Include man dir/pages in spec file install
  * io_uring.h: sync with kernel
  * Fix leak of fd in io_uring_queue_init() on failure
  * io_uring_submit: fix head/tail wrap issue
  * io_uring.h: add send/recvmsg parts
  * Add send/recvmsg test case
  * test/send_recvmsg: code cleanups and error handling
  * test/fsync: use io_uring_sqe_set_flags()
  * test/io_uring_register: don't test buffer size if too large
  * test/ring-leak: use static array for io_uring_register()
  * Add basic helpers for file/buffer registration
  * Add io_uring_submit_and_wait()
  * Make io_uring registration arguments const
  * Add support for eventfd registration
  * src/queue: cleanup sq_ring_needs_enter()
  * Make runtests.sh output test to dmesg
  * man: add IOSQE_IO_DRAIN and IOSQE_IO_LINK
  * Add basic README
  * Make io_uring_peek_cqe() return -EAGAIN for no CQEs
  * Add test case for poll hang
  * Fixed address prep helpers should include buf_index
  * examples/io_uring-cp: handle io_uring_peek_cqe() -EAGAIN
  * Sync io_uring.h with the kernel
  * test/cq-full: handle io_uring_peek_cqe() -EAGAIN
  * test/io_uring_setup: add support for io_uring_params->features
  * src/setup: unify ring munmap()
  * test/io_uring_enter.c: unlink temp file when done
  * Add IORING_OP_TIMEOUT opcode
  * Add basic IORING_OP_TIMEOUT test case
  * test/timeout: include some notion of verifying length of timeout
  * test/timeout: check if we always get a wakeup from timeout
  * Remove TIMEOUT code
  * examples/ucontext-cp: style fixups
  * Add TIMEOUT support
  * Get rid of memset() for command prep helpers
  * Add io_uring_wait_cqe_timeout()
  * io_uring_wait_cqe_timeout: fix wrong error return check
  * io_uring_wait_cqe_timeout: document that io_uring_submit() not needed
  * __io_uring_get_cqe: change 'wait' bool to be a count of requests
  * Add io_uring_wait_cqes_timeout()
  * test/timeout: use io_uring_wait_cqes_timeout()
  * Makefile: add pretty/quiet CC/LN output
  * Add basic travis test file
  * Makefile: handle quiet AR/RANLIB
  * Add STDOUT write test
  * io_uring.h: sync with kernel header
  * liburing: use -fPIC for both static and shared libraries
  * io_uring_peek_batch_cqe(): fixup style and add to exports
  * liburing.map: move newer exported symbols to 0.2
  * Split up __io_uring_submit()
  * io_uring_wait_cqes_timeout: use __io_uring_flush_sq()
  * Add __io_uring_submit_and_wait() helper
  * Add io_uring_wait_cqes()
  * Fix io_uring_wait_cqes_timeout() with ts == NULL
  * Fold io_uring_wait_cqes_timeout() with io_uring_wait_cqes()
  * Inline fast-path of io_uring_{wait,peek}_cqe()
  * Fix timeout detection
  * Switch to 32/64-bit agnostic timeout format
  * examples/ucontext-cp.c: get rid of c99 style declarations
  * Add test/file-register
  * test/file-register: add grow/shrink cases
  * test/runtests.sh: make default timeout 30s, not 10s
  * Add io_uring_queue_init_params()
  * io_uring.h: add IORING_SETUP_CQSIZE
  * Add test case for application specified cq ring size
  * test/file-register: catch succeeding with too many fds
  * test/file-register: close/unlink test_shrink() files
  * test/runtests.sh: check for root before using /dev/kmsg
  * Add io_uring_register_files_update()
  * b/test/file-register: convert to library functions and clean up
  * test/cq-size: use 'ret', not 'errno' directly
  * test/runtests.sh: distinguish between failed and OK timeouts
  * Add regression test case for commit 8a9973408177
  * Add test case for skb/socket ref count issues with fully sparse file set
  * Add test case for absolute timeouts
  * Make io_uring_prep_timeout() take timeout flags
  * test/timeout: cleanup cqe seen and error prints
  * Add IORING_OP_TIMEOUT_REMOVE
  * Add test case for non-blocking socket reads/writes
  * Un-DOSify test/232c93d07b74-test.c
  * Add deadlock socket read/write test case
  * Sync with kernel io_uring.h header
  * Add io_uring_prep_accept() helper
  * test/socket-rw.c: use TCP, not pipes
  * Add simple IORING_OP_ACCEPT test case
  * test/accept: test that we -EINVAL for accept with SQPOLL
  * test/accept: fix a few errors
  * Shorten timeout tests
  * test/runtests.sh: check for remaining io_uring workers on exit
  * test/accept: add test to see if we cancel correctly on exit
  * test/runtests.sh: only log first test to have alive workers on exit
  * test/send_recvmsg: ensure we exit
  * test/send_recvmsg: hopefully make it reliable
  * Add runtests-loop target
  * liburing-0.2
  * test/file-register: add huge file set test case
  * Add read/write test that does various combinations of IO
  * Add IORING_OP_ASYNC_CANCEL and prep helper
  * Add test/io-cancel
  * README: add io-uring@vger.kernel.org list info
  * Add IORING_OP_LINK_TIMEOUT test cases
  * Add test case for IORING_SETUP_CQ_NODROP
  * test/runtests.sh: fix broken tee usage
  * man/io_uring_enter.2: clarify -EAGAIN handling
  * man/io_uring_enter.2: sync with kernel
  * man/io_uring_enter.2: document -EBUSY return
  * test/cq-overflow.c: add IO test
  * test/cq-overflow: handle -EBUSY on CQ_NODROP submit
  * test/cq-overflow: update for IORING_FEAT_NODROP
  * test/cq-full: update for IORING_FEAT_NODROP
  * test/defer: drop overflow hung test on IORING_FEAT_NODROP
  * __io_uring_submit_and_wait: check for SQ readiness for submit == 0
  * Add syzbot test case for io_sqe_files_register() alloc failure
  * Ensure test cases work as non-root always
  * test/accept: add test case for correct -ERESTARTSYS transformation
  * test/accept: code reuse cleanup
  * test/cq-overflow: account number submitted correctly
  * Fix io_uring_get_sqe() for IORING_SETUP_SQPOLL
  * test/accept: add test case for lots of pending accepts at exit
  * test/fc2a85cb02ef-test: make note of needed kconfig options
  * README: add small blurb on rlimit memlocked (ulimit -l)
  * test/link-timeout: add short linked timeout test case
  * test/poll-link: add test case for polls linked with timers
  * test/accept-link: add test case for accept linked with timers
  * Improve reliability of poll/accept-link tests
  * test/poll-link: use mask check for completion success
  * Always use bundled liburing.h for test cases
  * test/fc2a85cb02ef-test: set fail slab/page_alloc verbose to 0
  * Fix 32-bit compile warnings
  * test/fixed-link: fix transposed error arguments
  * Add test/poll-cancel-ton
  * test/link-timeout: add more chained linked timeout cases
  * Add teardown test case
  * test/link-timeout: add a few more test cases
  * Update poll cancellation return codes
  * test/teardowns: lighten load and wait for children
  * test/read-write: add linked test case
  * Add test/poll-many.c
  * Fix io_uring_sq_ready()
  * test/cq-overflow: add test case for c5bc0ed798e0
  * Don't let io_uring_wait_cqes() submit IO
  * Add io_uring_wait_cqe_nr()
  * Revert "Fix io_uring_sq_ready()"
  * Make __io_uring_submit_and_wait() do the right thing for flushed ring state
  * test/stdout: add fixed buffer tests
  * test/read-write: remove debug message
  * test/fc2a85cb02ef-test: make sure we skip on non-root
  * test/timeout: test_single_timeout_nr should wait for 3, not 4
  * test/runtests.sh: improve alive worker detection
  * __io_uring_submit: always check sq_ring_needs_enter()
  * Add regression test for the bug fix in d77a67ed5f27
  * __io_uring_get_cqe: add safety for SQPOLL
  * test/connect: fixup a few style issues
  * Fix flush/submit with internal timeout
  * Add test case for commit 7ad0e4b2f83c
  * Split out system call bits from library interface
  * Update micro level to 3 in prep for 0.3
  * io_uring_wait_cqes: return right submission count on flush
  * io_uring_wait_cqes: use cqe related return codes
  * liburing.map: remove export of (now dead) syscall exports
  * test/poll-cancel-ton: remove set-but-unused variable
  * Add test case for -EFAULT triggered by iov reuse
  * test/connect: don't rely on -EINPROGRESS being returned
  * Sync io_uring.h with the kernel
  * liburing.h: correct some > 80 char lines
  * test/fsync: use 'stderr' for errors, and remove bogus EINVAL check
  * test/timeout: add test cases for sqe->flags being set on timeouts
  * test/timeout: remove copied (and wrong) comments
  * test/link-timeout: update for allowed link timeouts
  * test/poll-cancel-ton: improve test case
  * test/link: add a few IOSQE_IO_HARDLINK test cases
  * Sync io_uring with 5.6
  * Add prep helpers for IORING_OP_FILES_UPDATE and IORING_OP_FALLOCATE
  * Add IORING_OP_FALLOCATE test case
  * __io_uring_flush_sq: kill dead variable
  * Add IORING_OP_OPENAT/IORING_OP_CLOSE helpers and test case
  * Sync io_uring.h with 5.6 kernel bits
  * test/file-update: register files in multiple rings
  * io_uring_wait_cqe*(): don't call into the kernel if we peek an event
  * Add IORING_OP_STATX definition and simple test case
  * test/link_drain: print what test failed
  * __io_uring_get_cqe: use internal stable pointer for cqe
  * test/open-close: accept a passed in file
  * test/accept-reuse: check that we get SQE reuse right
  * __io_uring_flush_sq: avoid extra shared ktail read, if we can avoid it
  * Sync io_uring.h header with 5.6 kernel bits
  * Only use -fPIC for the shared library
  * liburing-0.3
  * Add test cases comparing poll(2) with io_uring poll
  * Add non-vectored read/write
  * test/accept-reuse: fix C99'ism
  * Makefile: quiet down rm
  * configure: allow to set host CC
  * test/io-cancel: fix file mode and user data check
  * test/accept: don't allocate send/recv data on the stack
  * test/open-close: unlink for a file we create
  * Add new opcodes to io_uring_enter.2 man page
  * io_uring_enter.2: add note of files update array life time
  * io_uring_setup.2: minor clarification
  * io_uring_setup.2: formatting and addition of read/write fixed
  * io_uring_prep_files_update() should take offset as well
  * Add fadvise/madvise prep helpers
  * Add fadvise test case
  * Add basic madvise test case
  * test/file-update: add sqe based test case
  * test/{f,m}advise: cut down runtime
  * test/{f,m}advise: some kernel return -EBADF on unknown opcode
  * Add io_uring_ring_dontfork()
  * man/io_uring_enter.2: improve timeout documentation
  * man/io_uring_enter: fix missing space in RECVMSG
  * Add buffered short read test case
  * Add support for IORING_OP_OPENAT2
  * Add openat2(2) test case
  * Change EPOLL_CTL and OPENAT2 opcodes
  * Add helpers for IORING_OP_{RECV,SEND} opcodes
  * Update struct io_uring_files_update struct
  * Fix 32-bit compile warning in io_uring_prep_openat2()
  * test/file-register: add intensive update/remove test case
  * Add MIT license
  * Include MIT notice in rpm spec and debian package file
  * Update io_uring.h
  * Add io_uring_register_probe()
  * Add probe test case
  * IORING_SETUP_SHARED got renamed to IORING_SETUP_ATTACH_WQ
  * Add test case for IORING_SETUP_ATTACH_WQ
  * test/read-write: add non-vectored read/write testing
  * Rename io_uring_params 'id' to 'wq_id'
  * test/madvise: don't fail on "suspicious timings"
  * test/read-write: skip non-vectored read/write if not supported
  * Update shared workqueue support and test case
  * test/shared-wq: use normal init
  * Remove EPOLL_CTL for now
  * Add io_uring_{register,unregister}_personality() helpers
  * Add sqe personality member/flag
  * Add personality test case
  * test/personality: test invalid personality
  * test/personality: test invalid unregister ID
  * test/shared-wq: remove debug sleep
  * Add test/personality to .gitignore
  * man/io_uring_enter.2: add notes on kernel version availability
  * man/io_uring_enter.2: add IORING_OP_{SEND,RECV}
  * test/personality: update to modified API
  * io_uring.h: remove dead IOSQE_PERSONALITY flag
  * Sync io_uring.h with 5.6-rc
  * Update README to mention regressions tests
  * test/probe: split verification into helper
  * test/probe: add test csae for io_uring_get_probe()
  * man/io_uring_enter.2: add fadvise/madvise
  * man/io_uring_register.2: add missing registration opcodes
  * man/io_uring_enter.2: add credentials personality field
  * man/io_uring_enter.2: add IOSQE_ASYNC
  * Add eventfd test case
  * test/send_recv: use stderr for errors
  * Use stderr consistently in test/ cases
  * test/read-write: skip eventfd read if we know we don't have READ
  * man/io_uring_enter.2: clarify how/when IOSQE_IO_LINK are terminated
  * test/eventfd: skip on earlier kernels
  * Add circular eventfd test case
  * Add test/eventfd-ring to .gitignore
  * Add io_uring_prep_epoll_ctl() helper
  * test/poll-v-poll: add variant that uses io_uring for epoll_ctl()
  * io_uring_sq_ready: check shared head for SQPOLL ring
  * Add relative path testing
  * man/io_uring_setup.2: document IORING_FEAT_CUR_PERSONALITY
  * io_uring.h: make GPL-2.0 OR MIT
  * liburing.spec: use brick.kernel.dk and add the signature
  * Add SPDX license identifiers
  * Correctly handle if __kernel_timespec is defined
  * Auto-generate compat.h
  * man/io_uring_register.2: add note of ring quiesce for file/buffers registration
  * test/poll-cancel-ton: reap events after submit
  * configure: fix mis-generation of compat.h for no __kernel_rwf_t
  * Sync io_uring.h with 5.7-pre
  * test/accept-link: update for FAST_POLL
  * test/splice: fix-up test case on kernels not supporting splice
  * Reinstate io_uring_unregister_eventfd()
  * configure: sync struct open_how with kernel API
  * test/sq-poll-kthread: include grace period before thread check
  * Add IORING_OP_PROVIDE_BUFFERS and helper
  * test/read-write: add test case for selectable buffers
  * test/link: fix typo
  * test/read-write: fix non-root failure
  * Make it clear we're now on the 0.6 base
  * test/poll-link: don't error out on connect failure
  * Fix 32-bit warning for io_uring_prep_splice()
  * test/send_recvmsg: add support for BUF_SELECT
  * io_uring_prep_splice: fix 32-bit compat off_in truncation
  * test/read-write: ensure SQPOLL for non-root just warns
  * test/send_recvmsg: add missing socket close
  * test/send_recvmsg: ensure that we get -ENOBUFS for no buffers
  * test/across-fork: have child wait for write finish
  * __io_uring_get_cqe: don't subtract negative error from 'submit'
  * __io_uring_get_cqe: fix spurious -EAGAIN
  * test/splice: include <linux/memfd.h>
  * test/splice: don't use memfd
  * test/send_recvmsg: cleanup on abort
  * __io_uring_get_cqe: remove redundant wait_nr clear
  * io_uring_wait_cqes(): correct comment
  * test/read-write: add more buffer select tests
  * Sync io_uring.h header with the 5.7 pending kernel bits
  * Add io_uring_prep_remove_buffers() helper
  * Change 'gid' to 'bgid' for providing buffers
  * io_uring_sq_ready: always used shared ring state
  * test/test/sq-space_left: test kernel vs liburing side sync on short submit
  * test/read-write: add test case for links with async/drain
  * test/link-timeout: accept -ECANCELED for bad address write as well
  * test/fallocate: add test case for exceeding RLIMIT_FSIZE
  * test/read-write: add RLIMIT_SIZE test case
  * io_uring.h: correct spdx header
  * test/read-write: skip IOSQE_ASYNC if not supported
  * man/io_uring_enter.2: add note of EINTR return value
  * Add LFS openat test
  * test/lfs-openat: unlink the right file
  * test/lfs-openat-write: test LFS writes with OPENAT file
  * Coding style cleanups
  * test/lfs-openat-write: return the correct error
  * configure: check for struct statx
  * .gitignore: add lfs-openat and lfs-openat-write
  * io_uring_get_sqe: always use khead
  * __io_uring_get_cqe: silence signed vs unsigned comparison warning
  * test: use mmap() directly in syzbot generated code
  * Fix 32-bit warnings on compile
  * test/statx: add test case for AT_EMPTY_PATH + valid fd
  * Use __off64_t for offsets
  * Use uint64_t for splice offsets
  * test/link-timeout: FASTPOLL kernels can cancel successfully
  * test/open-close: fix race with closing ring itself
  * man/io_uring_enter.2: add IORING_OP_TEE entry
  * test: add potential argument, ignore if unused
  * test: add option to run with defined test files / devices
  * test/iopoll: add polled IO test case
  * test/iopoll: add buf_select test case
  * test/read-write: support configured test files
  * test/madvise: support configured test files
  * test/fadvise: support configured test files
  * test/runtests.sh: check if configured test files exist
  * Add test case for SQPOLL -EBUSY bug
  * test: use config.local for runtests.sh
  * test/eventfd-disable: ignore test when an argument is given
  * test/runtests.sh: include argument for failed test concatenation
  * test/file-register: ensure write vs read is ordered
  * test/iopoll: skip test if file/device/fs doesn't supported polled IO
  * test/runtests.sh: improve failed list
  * Add test/close-opath.c
  * test/send_recv: add SQPOLL test case
  * test/runtests.sh: add dmesg check
  * Add test/iopoll to .gitignore
  * Bump version to 1.0.7
  * test/runtests.sh: make default timeout be 60 seconds
  * test/timeout-overflow: use #X for the timeout number
  * configure: test for presence of C++ compiler
  * test: various missing return checks from io_uring_wait_cqe()
  * Add regression test case for task_work regression
  * test/ce593a6c480a-test: ignore arguments
  * man/io_uring_enter: update connect to note use of const
  * src/setup: clarify that we always return -errno on error
  * test/cq-overflow: correct error condition
  * test/cq-full: correct error condition
  * test/cq-overflow-peek
  * test/statx: be safe and check if __NR_statx is there
  * io_uring.h: sync with kernel
  * .gitignore: add test/cq-overflow-peek
  * Add test case for testing full fill of SQ and CQ ring
  * test/nop-all-sizes: exit ring for each loop
  * man/io_uring_setup.2: document IORING_SETUP_ATTACH_WQ
  * test/eeed8b54e0df-test: allow 4096 as valid return too
  * Add test case for task_work related wakeup hang
  * test/wakeup-hang: ignore argument
  * .gitignore: add test/wakeup-hang
  * Add test cases for file table exit hang
  * test: add missing SPDX identifiers
  * test/timeout-overflow: don't run on newer kernels
  * test/submit-reuse: accept test argument
  * Add test case for double poll crash
  * test/double-poll-crash: ignore arguments
  * test/lfs-openat: add linked files test case
  * test/a4c0b3decb33-test: limit to 5000 iterations
  * examples/io_uring-test: don't error on shorter files
  * sq_ring_needs_enter: revert change to only enter if submit != 0
  * test/iopoll: coding style fixups
  * test/iopoll: only SQPOLL requires root, IOPOLL does not
  * Use the right type for io_uring_prep_splice()
  * io_uring_prep_splice(): fix type (again)
  * Add a test case for closed pipe terminating properly
  * test/register-restrictions: don't fail if restrictions aren't supported
  * Add signalfd deadlock test case
  * .gitignore: add a few missing tests
  * Fix missing 'c' in sigfd-deadlock addition
  * test/sigfd-deadlock: remove unneeded libaio.h include
  * test/submit-reuse: explicitly large vec counts and IOSQE_ASYNC
  * man/io_uring_enter.2: add description of buffer selections
  * man/io_uring_setup.2: document missing IORING_FEAT_* feature flags
  * io_uring.h: add new definitions from 5.10
  * Add SQPOLL sharing test case
  * test/accept: expect non-failure for SQPOLL on newer kernels
  * test/accept: fix spurious connect failure
  * Add nonblock empty socket read test
  * Add io_uring_sqring_wait()
  * Add a few function comments in liburing.h
  * Add IORING_OP_SHUTDOWN and prep helper
  * Add IORING_OP_SHUTDOWN test case
  * test/shutdown: ignore SIGPIPE
  * Bump major version to 2
  * test/send_recv: test non-registered SQPOLL files if available
  * io_uring.h: fix missing tab
  * man/io_uring_setup.2: improve SQPOLL wakeup example
  * test/send_recv: exit properly if SQPOLL_NONFIXED isn't available
  * test/sq-poll-share: error handling fixes
  * Add segmented read/write pipe test
  * .gitignore: add pipe-reuse
  * test/iopoll: correctly skip IOPOLL if test device/file doesn't support it
  * test/iopoll: don't truncate target file
  * test/sq-poll-share: unlink file on successful exit too
  * Add sq-poll-dup test case
  * test/sq-poll-share: don't close file until we're done
  * test/sq-poll-{share,dup}: use prepped SQEs as what to wait for
  * test/sq-poll-dup: test a few more cases
  * test/sq-poll-dup: remove unused variable
  * test/accept-link: fix check for using a passed in test file
  * man/io_uring.7: style and barrier updates
  * man/io_uring.7: clarify submission/completion ordering
  * man/io_uring_enter.2: clarify PROVIDE_BUFFERS requirements
  * test: find free port choice
  * test/lfs-openat: defer open until we know we're running the test
  * Makefile: add .PHONY dependency
  * test/submit-reuse: take a breather between fadvise calls
  * man/io_uring_enter.2: clarify POLL_ADD return value
  * test/*-reuse: don't test for !IORING_FEAT_SUBMIT_STABLE
  * test/accept-link: abort if accept isn't supported
  * test/accept-test: skip if accept isn't supported
  * test/splice: expand criteria for having splice and skip if not there
  * test/close-opath: skip on older kernels
  * test/connect: skip if connect isn't supported
  * test/cq-overflow-peek: skip for !NODROP
  * test/file-register: add expected fail case
  * test/submit-reuse: error check file opens
  * test/accept-reuse: reduce queue size
  * io_uring.h: add renameat and unlinkat opcodes
  * liburing.h: add renameat/unlinkat prep helpers
  * Add rename at unlink test cases
  * test/{rename,unlink}: don't fail on no kernel support
  * test/rename: add failure case
  * test/unlink: add failure case
  * .gitignore: add missing test cases
  * test/self: add /proc/self/ open+read test case
  * test/self: update description
  * io_uring.h: update with 5.11-pending copy
  * Include 'features' in struct io_uring
  * Add __sys_io_uring_enter2()
  * Add wrapper for __io_uring_get_cqe()
  * Use IORING_ENTER_GETEVENTS_TIMEOUT if available
  * Update SIG_IS_DATA to modified kernel API
  * Rename SIG_IS_DATA -> EXT_ARG
  * Add test case for SQPOLL going to sleep properly
  * liburing.h: fix 32-bit compile warning
  * src/queue: add comment on why reading SQ->head for flush isn't atomic
  * man/io_uring_enter.2: ensure all IORING_ENTER_* flags are documented
  * man/io_uring_enter.2: document new opcodes
  * man/io_uring_setup.2: correct 5.10 -> 5.11 for non-fixed files and SQPOLL
  * Add test case for thread exiting with pending IO
  * test/self: skip if argument passed in
  * Add circular poll ring test case
  * Add two ring deadlock case
  * Add .gitignore entries for recent tests
  * man/io_uring_register.2: fix spelling error
  * io_uring.h: 5.12 pending kernel sync
  * test/file-register: cleanups
  * test/file-register: skip file skipping on older kernels
  * src/queue: update comment on io_uring_wait_cqes() with timeouts
  * test/poll*: use appropriately sized CQ ring
  * Add test case for circular reference SQPOLL hang
  * src/queue: never clear data->wait_nr
  * tests: make the per-test device/file map TEST_MAP
  * .gitignore: add sendmsg_fs_cve
  * test/read-write: skip too-big test on non-root
  * io_uring_prep_sync_file_range: cleanups
  * test/fsync: use new io_uring_prep_sync_file_range() helper
  * test: use random port in range for socket tests
  * setup: cleanup probe code
  * test/Makefile: ensure dependencies and build of helpers.[ch] is sane
  * test/helpers: remove extra whitespace
  * helpers: prefix any helper with t_ instead of io_uring_
  * test/helpers: add ring creation helpers
  * test: use ring creation helpers where appropriate
  * Add test case for exiting with SQPOLL and rings created disabled
  * Sync io_uring.h API file with Linux 5.12
  * man/io_uring_enter.2: note that -EBUSY can also happen for getevents
  * examples/io_uring-cp: wait for pending writes before exit copy loop
  * test/socket-rw*: don't fatally error on failure to bind
  * test/connect: randomize connect port
  * test/pipe-reuse: ignore short read
  * test/ring-leak: get rid of warning on unchecked read
  * test: get rid of x86_64'isms in the test code
  * test/rw_merge_test: code cleanups
  * test/poll-mshot-update: test live updates of triggering requests
  * setup: provide helpers to inquire about necessary mlock sizes
  * src/setup: add some documentation to the memlock helpers
  * src/setup: don't treat dummy ring init as failure
  * Revert "io_uring.h: add mknodat opcode"
  * Revert "liburing.h: add mknodat prep helper"
  * Revert "Add mknod test case"
  * man/io_uring_enter.2: clarify io_uring_enter(2) SQPOLL return value
  * test/send_recv: drop mutex on thread creation failure
  * test/send_recvmsg: drop mutex on thread creation failure
  * man/io_uring_enter.2: further clarify what cqe->res holds
  * test/Makefile: silence string/array overflow for tests
  * test/sqpoll-cancel-hang.c: fix test crash
  * test/timeout: newer kernel require separate submit
  * src/queue: don't flush SQ ring for new wait interface
  * liburing.h: make all file/IO offset __u64
  * Fix 32-bit compile warnings
  * man/io_uring_setup.2: make sure FEAT flags are kernel versioned
  * test/runtests.sh: report what tests timed out
  * man/io_uring_setup.2: document the two most recent FEAT flags
  * Add test case for empty submit/wait SQPOLL EOWNERDEAD failure case
  * test/mkdir: ignore run if argument given
  * test/symlink: ignore run if agument given
  * test/hardlink: ignore run if argument given
  * Update io_uring.h
  * test/{accept,openat2}: use sqe->file_index
  * configure: document --cc and --cxx options
  * liburing.h: make header clean for implicit sign and size conversions
  * test/35fa71a030ca-test.c: limit runtime to 5 seconds
  * man/io_uring_register.2: add IORING_(UN)REGISTER_IOWQ
  * man/io_uring_enter.2: add poll update and multishot mode
  * man/io_uring_enter.2: note that cqe->flags is indeed used
  * man/io_uring_enter.2: add new 5.15 opcodes
  * man/io_uring_enter.2: note that not all requests support fixed files
  * man/io_uring_enter.2: update SQE
  * man/io_uring_enter.2: improve timeout entry
  * man/io_uring_enter.2: add IORING_OP_TIMEOUT clock sources
  * man/io_uring_register.2: document IORING_REGISTER_IOWQ_MAX_UNBOUND
  * man/io_uring_register.2: add missing punctuation
  * man/io_uring_register.2: note when MAX_UNBOUND became available
  * Add (UN)REGISTER_IOWQ_AFF helpers
  * Get rid of useless 'extern' on function declarations in liburing.h
  * Add io_uring_register_iowq_max_unbound() helper
  * man/io_uring_enter.2: document IORING_ENTER_EXT_ARG
  * src/syscall.h: get rid of useless externs
  * Change IORING_REGISTER_IOWQ_MAX_UNBOUND_WORKERS
  * liburing.h: correct max_worker name
  * test/submit-link-fail: fix unchecked write(2) return
  * Fix IORING_REGISTER_IOWQ_MAX_WORKERS name
  * io_uring.h: sync with 5.15 kernel
  * test/runtests.sh: remove old manager/worker checks
  * test: add basic time measurement
  * test/runtests.sh: align at 55 wide
  * Revert "test/empty-eownerdead: Only expect EOWNERDEAD as test success"
  * Ignore spurious fadvise/madvise failures
  * liburing 2.1
  * liburing.spec: bump to version 2.1
  * test/file-register: newer kernels limit based on RLIMIT_NOFILE
  * test/runtests.sh: fix retrieving status
  * test/timeout: improve finding exec-target
  * test/file-verify: add read verification test
  * test/socket-rw-eagain: ignore if FASTPOLL is available
  * test/file-verify: add verification for truncated end-of-file read
  * man/io_uring.7: clarify how success and error returns are propagated
  * test/file-verify: add provide buffers test case
  * test/file-verify: add provide buffers support for main test too
  * io_uring.h: include recent 5.15-git addition of exported worker type
  * src/register: automatically increase RLIMIT_NOFILE, if necessary
  * man/io_uring_enter.2: correct IORING_OP_SHUTDOWN description
  * src/register: improve RLIMIT_NOFILE increase
  * src/queue: only enter the kernel if both submit and need_enter are true
  * man/io_uring_enter.2: add direct close description
  * configure: add openat2.h for open_how and RESOLVE_* flags
  * Revert "examples/ucontext-cp.c: Do not use SIGSTKSZ"
  * test/io-cancel: -ECANCELED is a valid return value
  * Add more explanations to the github PR template
  * man/io_uring_get_sqe.3: use "submission queue entry"
  * Rename man page
  * test/skip-cqe: use correct index for write side of pipe
  * Add test case for hang condition on exit without cleanup
  * liburing.h: don't truncate timeout_update/remove user data value
  * Don't truncate addr fields to 32-bit on 32-bit
  * test/skip-cqe: skip file based run
  * test/exit-no-cleanup: skip file based run
  * test/getdents: style fixups
  * test/getdents: don't fail on kernels not supporting the feature
  * test/getdents: ignore run if argument specified
  * Don't clear sqe->user_data as part of command prep
  * test: remove dead code
  * Add test case for socket read with offset == -1
  * test/socket-rw-offset: skip for kernels without cur position rw

  [ Jeff Moyer ]
  * man: add a man page for io_uring_register
  * io_uring_enter.2 man page
  * man: alphabetize the error section for io_uring_register
  * man: io_uring_register: use a .TP list for flags
  * man: fixup description of fixed files I/O
  * man: add io_uring_setup.2 man page
  * io_uring_register takes 4 args
  * Add sigmask parameter to io_uring_enter
  * remove sigsz from io_uring_enter.2
  * add io_uring_queue_mmap
  * io_uring_enter.2: clarify min_complete
  * add syscall unit tests
  * test/file-register: add test case for zero initial fds
  * spec: Fedora RPM cleanups
  * barrier.h: add generic smp_mb implementation
  * document IORING_SETUP_CQSIZE
  * test: fix up dead code bugs

  [ Zach Bjornson ]
  * Add io_uring_cqe_get_data()

  [ Shenghui Wang ]
  * liburing: install man pages on running 'make install'
  * liburing: improve output for test/io_uring_setup.c

  [ Kevin Vigor ]
  * liburing: improve 'make install'
  * liburing: do not build static library with -fPIC
  * liburing: add extern "C" to liburing.h
  * liburing: specifying --prefix to configure script was ineffective, fix.

  [ Ian Gulliver ]
  * Fix manpage mmap() syntax
  * Fix liburing.h memset() missing declaration
  * Match const signatures in io_uring_prep_* to native functions

  [ Dmitry V. Levin ]
  * syscall: fix names of __NR_* macros
  * syscall: add support of non-x86 architectures
  * io_uring_setup.2: fix multiple formatting issues
  * io_uring_enter.2: fix multiple formatting issues
  * io_uring_register.2: fix multiple formatting issues

  [ Hrvoje Zeba ]
  * Add missing symbols to linker version map
  * Add pkgconfig to rpm spec
  * Use __typeof() instead of typeof()
  * Don't take ownership of %{_mandir}/man2 directory
  * Use msec parameter instead of TIMEOUT_MSEC in msec_to_ts()
  * Printout correct failure locations in test/timeout.c
  * Don't cap wait_nr in __io_uring_submit()
  * Add a regression test for behavior before commit b5837bd5311d
  * test/accept-test: add test case for accept() with addr/addrlen
  * Add io_uring_prep_connect() helper
  * Add a simple connect test

  [ Weiping Zhang ]
  * fix harmless typo in sq_entries in io_uring_mmap
  * clean examples when make clean

  [ zhangliguang ]
  * examples/io_uring-cp: fix a NULL pointer dereference

  [ Stefan Hajnoczi ]
  * pkgconfig: install a liburing.pc file
  * configure: move directory options to ./configure
  * pkgconfig: add missing config-host.mak dependency
  * spec: invoke ./configure with arguments
  * src/Makefile: honor the caller's includedir and libdir
  * src/Makefile: keep private headers in <liburing/*.h>
  * COPYING: update to latest LGPL v2.1 text
  * spec: use Fedora "LGPLv2+" license identifier
  * spec: add URL tag
  * spec: fix <liburing/*.h> permissions
  * spec: update RPM version number to 0.2
  * Makefile: add missing .pc dependency on .spec file
  * spec: additional Fedora RPM cleanups
  * spec: use "or" instead of "/" in License line
  * spec: add ./configure --libdevdir= for development package files
  * spec: bump version to 2.0
  * spec: add explicit build dependency on make
  * examples/ucontext-cp.c: cope with variable SIGSTKSZ

  [ Roman Penyaev ]
  * setup: return -errno explicitly from io_uring_queue_init()
  * liburing,queue,setup: handle IORING_SQ_NEED_WAKEUP for io_uring_submit()
  * queue: always fill in sq->array on io_uring_submit()
  * liburing: introduce io_uring_cqe_set_flags() helper
  * liburing: introduce io_uring_for_each_cqe() and io_uring_cq_advance()

  [ Austin Seipp ]
  * liburing: export io_uring_queue_mmap symbol

  [ Kornilios Kourtis ]
  * Do not assume p->{cq,sq}_off.head is 0
  * sq_ring_needs_enter(): force loading of kflags
  * __io_uring_flush_sq(): remove unnecessary check

  [ Stephen Bates ]
  * example/io_uring-test.c: Fix iovecs increment

  [ Bart Van Assche ]
  * __io_uring_get_cqe(): Use io_uring_for_each_cqe()
  * Fix the use of memory barriers
  * Makefiles: Support specifying CFLAGS on the command line
  * Fix the 32-bit build
  * Change __x86_64 into __x86_64__
  * Optimize i386 memory barriers
  * Makefiles: Enable -Wextra
  * src/include/liburing/barrier.h: Use C11 atomics
  * Convert __io_uring_get_sqe() from a macro into an inline function
  * src/Makefile: Only specify -shared at link time
  * src/include/liburing/barrier.h: Restore clang compatibility
  * Make the liburing header files again compatible with C++
  * Add a C++ unit test
  * configure: Use $CC and $CXX as default compilers if set
  * .travis.yml: Change the language from C to C++
  * .travis.yml: Run tests as root and ignore test results

  [ Jackie Liu ]
  * Add regression test cases for kthread stuck
  * Add arm64 memory barriers support
  * liburing: Add regression test case for link with drain
  * test/link_drain.c: fixes
  * mktemp is dangerous, better use mkostemp
  * Avoid redefined warning of "SIGSTKSZ"
  * built liburing.so and test binary first when runtests
  * Update link_drain with new kernel method

  [ Julia Suvorova ]
  * liburing/barrier.h: Add prefix io_uring to barriers
  * liburing/barrier.h: Add prefix to arm barriers

  [ Hristo Venev ]
  * liburing: Use the single mmap feature

  [ 李通洲 ]
  * liburing: add io_uring_prep_{recv,send}msg
  * examples/ucontext-cp: use ucontext with liburing
  * examples/ucontext-cp: more complex example to show how ucontext works
  * queue.c: Silence compiler warnings
  * liburing.h: add `io_uring_prep_tee`
  * src/queue.c: don't test `LIBURING_UDATA_TIMEOUT` for the latest kernel since we don't use it internally
  * liburing.h: add io_uring_prep_close_direct

  [ James Rouzier ]
  * Add io_uring_sq_space_left()
  * Generalize Makefiles for examples and test.
  * Add artifacts to .gitignore
  * Add io_uring_cq_ready()
  * Add io_uring_peek_batch_cqe()
  * Update struct io_uring_sqe in the man file.

  [ yangerkun ]
  * Add test for overflow of timeout request's sequence

  [ zhangyi (F) ]
  * test/timeout: add multi timeout reqs test with different timeout
  * test/timeout: add multi timeout reqs test with different count

  [ Pavel Begunkov ]
  * test/defer: Test deferring with drain and links
  * io_uring: invalid fd for file-less operations
  * linked-timeout: check invalid linked timeouts
  * Test wait after under-consuming
  * splice: add splice(2) helpers
  * test/splice: add basic splice tests
  * test/sfr: basic test for sync_file_range
  * splice/test: improve splice tests
  * update io_uring.h with tee()
  * tee/test: add test for tee(2)
  * splice/tee/tests: test len=0 splice/tee
  * test/stdout: fix strcmp non-\0 string
  * test/cancel: test cancellation of deferred reqs
  * test/lfs-open: less limited test_drained_files
  * test: long iov recvmsg()/copy
  * Add timeout update
  * test/timeout: test timeout updates
  * test/rw: name flags for clearness
  * test/rw: remove not used mixed_fixed flag
  * test/rw: test reg bufs with non-align sizes/offset
  * man/io_uring_enter.2: describe timeout updates
  * timeout/test: clear state for timeout updates
  * rem_buf/test: inital testing for OP_REMOVE_BUFFERS
  * tests: identify timed out tests correctly
  * tests: test fixed file removal order
  * src/queue: refactor io_uring_get_sqe()
  * test/drain: test draining linked timeouts
  * src/queue: don't wait for less than expected
  * src/queue: clean _io_uring_get_cqe() err handling
  * src/queue: don't loop when don't enter
  * src/queue: don't re-wait for CQEs
  * src/queue: control kernel enter with a var
  * test/link-timeout: close pipes after yourself
  * test/sq-poll-share: don't ignore wait errors
  * a test for CVE-2020-29373 (AF_UNIX path resolution)
  * test: don't expect links to be partially executed
  * tests: add more IORING_OP_ASYNC_CANCEL tests
  * tests: test that ring exit cancels io-wq
  * tests: more cancellation tests
  * tests: test CQE ordering on early submission fail
  * tests/poll: poll update as a part of poll remove
  * tests: remove -EBUSY on CQE backlog tests
  * test: test ring exit cancels SQPOLL's iowq
  * sync io_uring.h API file with Linux 5.13
  * tests: add rsrc tags tests
  * tests: fix timeout-new for old kernels
  * tests: fix minor connect flaws
  * tests: remove test_link_fail_ordering()
  * tests: test shmem buffer registration
  * tests: update reg-buf limits testing
  * queue: clean up SQ flushing
  * update rsrc register/update ABI and tests
  * tests: fix poll update compatibility check
  * tests: close pipes in link-timeout
  * tests: fail early invalid linked setups
  * tests: create new files for rw testing
  * tests: rename iopoll test variables
  * tests: fix test_cancel_req_across_fork
  * tests: migrate rw tests to t_create_ring()
  * tests; skip non-root sendmsg_fs_cve
  * tests: add IOSQE_ASYNC cancel testing
  * tests: rw: don't exit ring when init failed
  * tests: non-root io_uring_register
  * tests: non-privileged defer test
  * tests: non-privileged io_uring_enter
  * tests: fix poll-mshot-update
  * liburing.h: add a multipoll helper
  * liburing.h: dedup poll mask conversion
  * tests: don't skip sqpoll needlessly
  * tests: skip when large buf register fails
  * tests: test open/accept directly into fixed table
  * io_uring: update buffer update feature testing
  * tests: file create/unlink cleanup
  * register: add tagging and buf update helpers
  * man: fix io_uring_sqe alignment
  * man: update notes on register quiesce
  * liburing: add helpers for direct open/accept
  * tests: use helpers for direct open/accept
  * tests: test early-submit link fails
  * man: document new register/update API
  * man/io_uring_enter.2: add notes about direct open/accept
  * tests: add no-op executable for exec
  * tests: test timeout cancellation fails links
  * tests: test open into taken fixed slot
  * man/io_uring_enter.2: update notes about direct open/accept
  * tests: improve multicqe_drain
  * tests: match kernel and pass fds in s32[]
  * tests: test close with fixed file table
  * io_uring: test IORING_TIMEOUT_ETIME_SUCCESS
  * io_uring: fix SQPOLL timeout-new test
  * io_uring.h: update to reflect cqe-skip feature
  * tests: add tests for IOSQE_CQE_SKIP_SUCCESS
  * test: poll cancellation with offset timeouts
  * test: skip-cqe with hardlinks
  * man/io_uring_enter.2: document IOSQE_CQE_SKIP_SUCCESS
  * man/io_uring_enter.2: notes about cqe-skip & drain interoperability

  [ Joseph Qi ]
  * liburing/test: fix build errors

  [ Carter Li ]
  * test: add test for READ_FIXED & IOSQE_IO_LINK
  * io_uring_enter.2: document IOSQE_IO_HARDLINK
  * io_uring.h: add IORING_FEAT_RW_CUR_POS flag
  * test: add test for send_recv
  * man/io_uring_enter.2: correct IORING_OP_STATX
  * liburing.h: add const type qualifier for io_uring_prep_write
  * man/io_uring_enter: correct the description of
  * examples/ucontext-cp.c: use IORING_OP_TIMEOUT

  [ Changcheng Liu ]
  * debian rules to package liburing
  * script to build liburing into debian package

  [ Johannes Thumshirn ]
  * liburing: create an installation target for tests

  [ liming wu ]
  * Remove C99'ism from certain tests

  [ Brian Gianforcaro ]
  * Fix .gitignore to omit new test binaries

  [ Corentin Jabot ]
  * Fix redefinition of statx_timestamp
  * Add a test for reading from eventfd

  [ Glauber Costa ]
  * for polled IO, do not miss the opportunity of getting completions when going to the kernel
  * add helper functions to verify io_uring supported opcodes
  * add another helper for probing existing opcodes
  * iopoll: test that we always enter the ring
  * probes: provide our own free function

  [ William Dauchy ]
  * test: fix openat flags
  * test: fix statx comment

  [ quininer ]
  * Fix IORING_OP_CONNECT document

  [ Simon A. F. Lund ]
  * test/read-write: fixed output, and added 'nonvec', when VERBOSE

  [ Stefano Garzarella ]
  * .gitignore: add missing tests to ignore
  * man/io_uring_setup.2: fix 'sq_thread_idle' description
  * test: add sq-poll-kthread test case
  * Add test/splice to .gitignore
  * Add CQ ring 'flags' field
  * man/io_uring_setup.2: add 'flags' field in the struct io_cqring_offsets
  * Add helpers to set and get eventfd notification status
  * man/io_uring_register.2: add IORING_CQ_EVENTFD_DISABLED description
  * Add test/eventfd-disable.c test case
  * .gitignore: add test/nop-all-sizes
  * io_uring.h: use an enumeration for io_uring_register(2) opcodes
  * io_uring.h: add register restrictions and enable ring defines
  * Add helper to register restrictions
  * Add helper to enable rings
  * Add test/register-restrictions.c test case
  * test/register-restrictions: fix rings_not_disabled test
  * test/register-restrictions: add new rings_disabled test case
  * man/io_uring_enter.2: split ERRORS section in two sections
  * man/io_uring_setup.2: add IORING_SETUP_R_DISABLED description
  * man/io_uring_register.2: add description of restrictions
  * man/io_uring_enter.2: add EACCES and EBADFD errors

  [ Andres Freund ]
  * Add test for sharing uring across fork
  * man: typo fixes
  * tests: add test for using ring after a forked child exits.

  [ Stefan Metzmacher ]
  * io_uring_cqe_get_data() only requires a const struct io_uring_cqe *cqe
  * configure/Makefile: introduce libdevdir defaults to $(libdir)
  * debian: package liburing-0.4 and use a layout as the libaio package
  * liburing.spec move to liburing-0.4
  * Fix liburing.so symlink source if libdir != libdevdir
  * debian/rules: pass down relativelibdir in order to get an absolute path
  * update debian/liburing1.symbols
  * update debian/changelog

  [ Guillem Jover ]
  * liburing.map: Fix LIBURING_0.3 shared library version node
  * Add src/include/liburing/compat.h to .gitignore
  * test: Skip tests where the kernel lacks support
  * test: Cleanup file artifacts on early exits
  * test: Unify queue init failed error message
  * test: Handle NULL sqe and cqe in tests
  * test: Expect fail values from io_uring calls to be -errno instead of -1
  * test: Distinguish failure messages for accept-link
  * test: Initialize the data struct to set stop member to 0
  * Add COPYING.GPL for the GPL v2 license text
  * man: Switch to use SPDX tag markers
  * spec: Correct License field
  * README: Update license information
  * test: Kill the tests if SIGINT was not effective
  * test: Split each test target and source entry into its own line
  * test: Fix sq-full-cpp source and object declaration
  * build: Output CXX on quiet output when using a C++ compiler
  * test: Handle operating with a missing config-host.mak
  * .gitignore: Sort test program entries
  * .gitignore: Add missing test programs
  * Remove versioned symbols not provided by the shared library anymore
  * Fold versioned symbols into LIBURING_2.0 version node
  * .gitignore: Add sq-poll-dup
  * Fix build flag settings
  * configure: Fix unsafe temporary file creation
  * test: Fix build failure with gcc -O0
  * test: Namespace core files with the test name
  * test: Fix runner output to avoid concatenated strings
  * test: Print timed out tests also on failure
  * test/timeout-new: Explicitly note that we are skipping the test
  * test/io_uring_register: Expect ENOMEM or EFAULT from __sys_io_uring_register
  * test/empty-eownerdead: Only expect EOWNERDEAD as test success
  * test: Use -n instead of ! -z
  * test: Use -z instead of ! -n
  * test: Use an array instead of interpolating into a string via $@
  * test: Pass an array to run_tests instead of an undefined variable
  * test: Add missing quotes around variables
  * test: Do not use $ in variables within $(())
  * test: Declare and assign shell variable separately to not mask return value
  * test: Disable shellcheck checks
  * build: Fix build flags support
  * test/poll-cancel-ton: Remove unused variable
  * test/empty-eownerdead: Clarify unexpected error message
  * test/runtests.sh: Fix shellcheck directive for old versions
  * .github/workflows: Add new shellcheck CI test
  * .github/workflows: Simplify and unify build tests
  * .travis.yml: Remove unused Travis CI support
  * test: Use syscall wrappers instead of using syscall(2) directly
  * test: Remove unused syscall number definitions
  * examples: Fix warnings for comparison of integers with different signedness
  * .github/workflows/build.yml: Pass -g -O2 -Wall -Wextra explicitly

  [ YoSTEALTH ]
  * Needs an line break

  [ Xiaoguang Wang ]
  * __io_uring_get_cqe: eliminate unnecessary io_uring_enter() syscalls
  * sq_ring_needs_enter: check whether there are sqes when SQPOLL is not enabled
  * Check cq ring overflow status
  * io_uring_peek_batch_cqe should also check cq ring overflow

  [ Taylor ]
  * Use __atomic builtins in barrier.h
  * Remove unused code in barrier.h
  * Fix warnings when compiling tests

  [ xuanyi ]
  * man/io_uring_enter.2: fix typo

  [ Mark Papadakis ]
  * Utility function io_uring_register_eventfd_async
  * Update io_uring_setup.2

  [ Shuveb Hussain ]
  * Adding section describing IORING_OP_OPENAT2
  * Adding description for the IORING_OP_SPLICE operation
  * Adding section to describe IORING_OP_EPOLL_CTL
  * Adding section 7 man page for io_uring
  * Adding full example to io_uring(7) man page while also fixing some text to comply to the "semantic new lines" recommendation from man-pages(7).

  [ Milan P. Stanić ]
  * fix build on musl libc
  * fix missing '#include <sys/stat.h>' in 'src/include/liburing.h

  [ Bijan Mottahedeh ]
  * preseve wait_nr if SETUP_IOPOLL is set
  * update wait_nr to account for completed event
  * remove duplicate call to __io_uring_peek_cqe()

  [ Jiufei Xue ]
  * change poll_events to 32 bits to cover EPOLLEXCLUSIVE

  [ Max Kellermann ]
  * test/lfs-openat: open dfd with O_PATH

  [ Mike Gerow ]
  * man: fix description of splice offsets

  [ Kirit Sælensminde ]
  * Take `sockaddr` immutably in io_uring_prep_connect

  [ Jobs Gate ]
  * Make readme sensible

  [ Alex Nash ]
  * Removed misplaced periods from io_uring_enter(2).
  * man/io_uring_enter.2: updated io_uring_sqe and fixed incorrect flag references.

  [ Tobias Klauser ]
  * .gitignore: add new test binaries
  * configure: fix typos in help/error messages
  * test/statx: verify against statx(2) on all archs
  * test/statx: test for ENOSYS in statx_syscall_supported

  [ Paymon MARANDI ]
  * test: check return of io_uring_get_sqe()

  [ Necip Fazil Yildiran ]
  * man/io_uring_enter: fix openat sqe doc

  [ xuanyi-fu ]
  * man/io_uring_setup.2: document IORING_SETUP_CLAMP

  [ Goro Fuji ]
  * syscall: make syscall.h independently includeable

  [ Joran Dirk Greef ]
  * Fix io_uring_sq_ready() to use load acquire to read khead.
  * Fix IORING_OP_FALLOCATE args in io_uring_enter(2) man page

  [ Lukas Czerner ]
  * runtests: clean up code in runtests.sh
  * runtests: add ability to exclude tests

  [ Paul Ewing ]
  * Add man page for io_uring_queue_init
  * Add man page for io_uring_queue_exit
  * Update packaging/installation for new man pages
  * Add man page for io_uring_get_sqe
  * Add get_sqe manpage to debian package

  [ Roman Gershman ]
  * Add const modifier to functions that do not change the state of the ring
  * Add a test demonstrating connect timeout functionality
  * Fix test_connect_timeout test
  * Add io_uring_prep_readv2 and io_uring_prep_writev2 helpers

  [ Ryan Sharpelletti ]
  * Moves function calls out of assert().
  * Changes format string from %lld to %PRIu64 in several tests.

  [ Simon Zeni ]
  * examples: disable ucontext-cp if ucontext.h is not available
  * Fix compilation with iso C standard (c89, c99 and c11)

  [ Akinobu Mita ]
  * remove zero-size array in io_uring.h

  [ Khem Raj ]
  * test: Fix build on 32bit architectures with 6bit time_t
  * examples/ucontext-cp.c: Do not use SIGSTKSZ

  [ Marcelo Diop-Gonzalez ]
  * Don't enter the kernel to wait on cqes if they are already available.
  * tests: add another timeout sequence test case

  [ Hao Xu ]
  * test/timeout-new: test for timeout feature
  * test: use a map to define test files / devices we need
  * add tests for drain io with multishot reqs
  * clarify an edge case of IORING_SETUP_SQ_AFF

  [ Sergei Iashin ]
  * man/io_uring_setup.2: a version of IORING_FEAT_SQPOLL_NONFIXED feature availability has been changed to 5.11

  [ noah ]
  * fixed newline character in man. $> man -l io_uring.7 would display 0 instead of backslash n
  * Added __builtin_expect macros and wrapped IORING_ENTER_SQ_WAKEUP branch
  * man/io_uring.7: Fix typo
  * test/file-register.c: Add tests for skipping file
  * man/io_uring_register.2: Add documentation on IORING_REGISTER_FILES_SKIP

  [ Nuno Sa ]
  * src/queue: fix `sq_ring_needs_enter()` indentation
  * src/queue: Fix a typo in `__io_uring_flush_sq()`

  [ Jiahao XU ]
  * Fix sigset_t not found in liburing.h
  * Add inline doc in the comments for io_uring_prep_splice

  [ Uman Shahzad ]
  * Install man7 pages
  * build: add -D_GNU_SOURCE to all CPPFLAGS/CFLAGS.

  [ james ]
  * Added prep function for sync_file_range op

  [ Zhiqiang Liu ]
  * setup: check whether malloc succ before using it
  * tests: add helpers.h to harden the tests
  * helpers: add io_uring_posix_memalign helper
  * helpers: add io_uring_calloc helper
  * helpers: add io_uring_create_file() helper
  * helpers: add io_uring_create_buffers() helper

  [ Dmitry Monakhov ]
  * add test case for 5.4 io merge regression logic

  [ David Disseldorp ]
  * examples/link-cp: fix a couple of strerror negations

  [ Emmanuel LE TRONG ]
  * man: Fix typo in man io_uring_queue_exit

  [ Palash Oswal ]
  * add test for sqpoll cancel hang

  [ Drew DeVault ]
  * io_uring_enter(2): clarify OP_READ and OP_WRITE

  [ Alois Wohlschlager ]
  * io_uring_enter(2): Clarify how to read from and write to non-seekable files

  [ Ammar Faizi ]
  * test/file-register: fix heap overflow read on test_basic
  * .gitignore: add several untracked test files
  * test/fsync: clean up t_malloc() before return
  * test/file-update: clean up t_malloc() before return
  * test/connect: fix random EACCES for non-root test
  * man: clean up spelling
  * .github/workflows: add build_with_gcc.yml
  * .github/workflows: add build_with_clang.yml
  * build_with_clang.yml: fix clang build error -Wunused-command-line-argument
  * test/io_uring_register: fix -Wimplicit-function-declaration of memfd_create
  * .github/workflows: fix apt warning
  * test/io_uring_setup: Don't use `__errno` as local variable name
  * test/send_recv: Use proper cast for (struct sockaddr *) argument
  * .gitignore: add `/test/output/`
  * .gitignore: add `test/file-verify`
  * test/file-verify: fix 32-bit build -Werror=shift-count-overflow
  * .github/workflows/build.yml: add 32-bit build
  * test: Fix endianess issue on `bind()` and `connect()`
  * test/probe: Use `io_uring_free_probe()` instead of `free()`
  * src/syscall: Wrap `errno` for `__sys_io_uring_{register,setup,enter{2,}}`
  * src/{queue,register,setup}: Don't use `__sys_io_uring*`
  * Wrap all syscalls in a kernel style return value
  * src/syscall: Add `close` syscall wrapper
  * Fix typo "timout" -> "timeout"
  * test/{iopoll,read-write}: Use `io_uring_free_probe()` instead of `free()`
  * test/cq-size: Don't use `errno` to check liburing's functions
  * test/thread-exit: Fix use after free bug
  * Add arch dependent directory and files
  * Add nolibc build support
  * configure: Add `CONFIG_NOLIBC` variable and macro
  * .github/workflows/build.yml: Add nolibc build x86-64 for CI
  * src/nolibc: Fix `malloc()` alignment
  * test/timeout: Fix `-Werror=maybe-uninitialized`
  * test/timeout-overflow: Fix `-Werror=maybe-uninitialized`
  * .github: Create pull_request_template.md
  * examples/Makefile: Fix missing clean up
  * test/Makefile: Refactor the Makefile

  [ Dmitry Kadashev ]
  * liburing.h: add mkdirat prep helper
  * Add mkdirat test case
  * io_uring.h: add symlinkat opcode
  * liburing.h: add symlinkat prep helper
  * Add symlinkat test case
  * io_uring.h: add linkat opcode
  * liburing.h: add linkat prep helper
  * Add linkat test case
  * io_uring.h: add mknodat opcode
  * liburing.h: add mknodat prep helper
  * Add mknod test case

  [ foxmox ]
  * debian/rules: add missing slash for relativelibdir

  [ anson-lo ]
  * Fix a bug due to the unreleased lock before function returns

  [ Thomas de Zeeuw ]
  * Refer to the accept_flags in io_uring_enter manual

  [ Shin Seunghun ]
  * test/io_uring_enter.c: set to_submit to 0

  [ Miłosz Kosobucki ]
  * Clarify information about error results

  [ wangyangbo ]
  * correct syscall NR in mips

  [ pechenkin ]
  * examples: disable ucontext-cp for elbrus (e2k) architecture

  [ godzie44 ]
  * test/nop-all-sizes.c: del some unnecessary checks
  * test/probe.c: fix typo in assert output

  [ Olivier Langlois ]
  * liburing: Add io_uring_submit_and_wait_timeout function in API

  [ Nursan Valeyev ]
  * setup.c: rewrite `__fls()`

  [ Tomáš Chaloupka ]
  * Fix invalid opcode used in io_uring_unregister_iowq_aff

  [ GalaxySnail ]
  * man/io_uring_setup.2: add missing `wq_fd` field

  [ Yinan Zhang ]
  * Remove unused variable in man page example

  [ Bikal Lem ]
  * fix 'make' when using glibc >= 2.28
  * runtests: use env to find bash
  * src/Makefile: use VERSION variable consistently

  [ Stefan Roesch ]
  * liburing: add missing man pages
  * liburing: update io_uring.h header file
  * liburing: add prepare function for getdents64
  * liburing: Add test program for getdents call
  * liburing: Add man page for io_uring_prep_getdents call

  [ monte ]
  * examples/io_uring_cp: fix bug while re-queuing

  [ Samuel Williams ]
  * Clarify behaviour of offset in `prep_read`/`prep_write`.

  [ derchris ]
  * remove patches

 -- jenkins-debian-glue Autobuilder <jenkins@build.alb.c3voc.de>  Fri, 31 Dec 2021 05:39:39 +0100

liburing (2.1-2) unstable; urgency=medium

  * Upload to unstable.
  * Switch to Standards-Version 4.6.0 (no changes needed).
  * Make globs in debhelper fragment files more specific to avoid them
    missing filename changes or including unintended files.

 -- Guillem Jover <guillem@debian.org>  Sat, 13 Nov 2021 02:07:31 +0100

liburing (2.1-1) experimental; urgency=medium

  * New upstream release.
  * Add patch to fix build failures on any-arm due to direct syscall(2) use.

 -- Guillem Jover <guillem@debian.org>  Thu, 16 Sep 2021 04:02:01 +0200

liburing (2.0-1) experimental; urgency=medium

  * New upstream version.
    - Bump shared library SONAME to liburing2.
    - Install man pages from section 3 and 7.
  * Add patch to skip tests that require root.

 -- Guillem Jover <guillem@debian.org>  Thu, 09 Sep 2021 03:29:04 +0200

liburing (0.7-3) unstable; urgency=medium

  * Switch to Standards-Version 4.5.1 (no changes needed).
  * Add new debian/upstream/metadata file.

 -- Guillem Jover <guillem@debian.org>  Thu, 24 Dec 2020 18:11:40 +0100

liburing (0.7-2) unstable; urgency=medium

  * Bump the minimum version for all symbols in the symbols file, to
    workaround that 0.7 upstream version unintentionally broke the ABI
    without bumping the SONAME. (Closes: #972758)

 -- Guillem Jover <guillem@debian.org>  Wed, 28 Oct 2020 10:35:07 +0100

liburing (0.7-1) unstable; urgency=medium

  * New upstream version.
  * Refactor debian/tests/test-build into two loops to avoid repetition.
  * Use link-cp instead of io_uring-cp as example command to test.
    Reported by Christian Ehrhardt <christian.ehrhardt@canonical.com>.

 -- Guillem Jover <guillem@debian.org>  Wed, 09 Sep 2020 04:26:54 +0200

liburing (0.6-3) unstable; urgency=medium

  * Add dependencies on libc6-dev | libc-dev and linux-libc-dev (>= 5.1)
    to liburing-dev. (Closes: #959182)
  * Replace mmap patch with upstream one.

 -- Guillem Jover <guillem@debian.org>  Fri, 01 May 2020 05:05:09 +0200

liburing (0.6-2) unstable; urgency=medium

  * Fix build failures on armhf and armel, by using __NR_mmap2 when __NR_mmap
    is not defined, which is fine, because the unit tests pass 0 as offset.

 -- Guillem Jover <guillem@debian.org>  Wed, 22 Apr 2020 01:30:19 +0200

liburing (0.6-1) unstable; urgency=medium

  * Initial release. (Closes: #950903)

 -- Guillem Jover <guillem@debian.org>  Fri, 17 Apr 2020 21:25:25 +0200
