On 8/17/21 3:33 AM, Pavel Begunkov wrote: > On 8/16/21 4:45 PM, Stefan Metzmacher wrote: >> Hi Pavel, >> >>> The behaviour is controlled by setting sqe->file_index, where 0 implies >>> the old behaviour. If non-zero value is specified, then it will behave >>> as described and place the file into a fixed file slot >>> sqe->file_index - 1. A file table should be already created, the slot >>> should be valid and empty, otherwise the operation will fail. >>> >>> Note 1: we can't use IOSQE_FIXED_FILE to switch between modes, because >>> accept takes a file, and it already uses the flag with a different >>> meaning. >> >> Would it be hard to support IOSQE_FIXED_FILE for the dirfd of openat*, renameat, unlinkat, statx? >> (And mkdirat, linkat, symlinkat when they arrive) >> renameat and linkat might be trickier as they take two dirfds, but it >> would make the feature more complete and useful. > > Good idea. There is nothing blocking on the io_uring side, but > the fs part may get ugly, e.g. too intrusive. We definitely need > to take a look Indeed, the io_uring side is trivial, but the VFS interface would require a lot of man handling... That's why I didn't add support for fixed files originally. -- Jens Axboe