On Wed, 24 Jan 2024 at 13:52, Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 1/24/24 1:52 AM, Cedric Blancher wrote: > > On Wed, 24 Jan 2024 at 09:33, Tony Solomonik <tony.solomonik@xxxxxxxxx> wrote: > >> > >> This patch adds support for doing truncate through io_uring, eliminating > >> the need for applications to roll their own thread pool or offload > >> mechanism to be able to do non-blocking truncates. > >> > >> Tony Solomonik (2): > >> Add ftruncate_file that truncates a struct file > >> io_uring: add support for ftruncate > >> > >> fs/internal.h | 1 + > >> fs/open.c | 53 ++++++++++++++++++----------------- > >> include/uapi/linux/io_uring.h | 1 + > >> io_uring/Makefile | 2 +- > >> io_uring/opdef.c | 10 +++++++ > >> io_uring/truncate.c | 48 +++++++++++++++++++++++++++++++ > >> io_uring/truncate.h | 4 +++ > >> 7 files changed, 93 insertions(+), 26 deletions(-) > >> create mode 100644 io_uring/truncate.c > >> create mode 100644 io_uring/truncate.h > >> > >> > >> base-commit: d3fa86b1a7b4cdc4367acacea16b72e0a200b3d7 > > > > Also fallocate() to punch holes, aka sparse files, must be implemented > > fallocate has been supported for years. Does it support punching holes? Does lseek() with SEEK_HOLE and SEEK_DATA work, with more than one hole, and/or hole at the end? Ced -- Cedric Blancher <cedric.blancher@xxxxxxxxx> [https://plus.google.com/u/0/+CedricBlancher/] Institute Pasteur