Another spin to incorporate the feedback from LPC and previous iteration. The series adds two capabilities: - FDP support at NVMe level (patch #1) - Per-io hinting via io_uring (patch #3) Patch #2 is needed to do per-io hints. The motivation and interface details are present in the commit descriptions. Testing: Done with fcntl and liburing based custom applications. On raw block device, ext4, xfs, btrfs and F2FS. Checked that no regression occurs for application that use per-inode hints. Checked that per-io hints, when passed, take the precedence over per-inode hints. Changes since v5: - Drop placement hints - Add per-io hint interface Changes since v4: - Retain the size/type checking on the enum (Bart) - Use the name "*_lifetime_hint" rather than "*_life_hint" (Bart) Changes since v3: - 4 new patches to introduce placement hints - Make nvme patch use the placement hints rather than lifetime hints Changes since v2: - Base it on nvme-6.11 and resolve a merge conflict Changes since v1: - Reduce the fetched plids from 128 to 6 (Keith) - Use struct_size for a calculation (Keith) - Handle robot/sparse warning Kanchan Joshi (3): nvme: enable FDP support block, fs: restore kiocb based write hint processing io_uring: enable per-io hinting capability block/fops.c | 6 +-- drivers/nvme/host/core.c | 70 +++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 4 ++ fs/aio.c | 1 + fs/cachefiles/io.c | 1 + fs/direct-io.c | 2 +- fs/fcntl.c | 22 ----------- fs/iomap/direct-io.c | 2 +- include/linux/fs.h | 8 ++++ include/linux/nvme.h | 19 ++++++++++ include/linux/rw_hint.h | 24 ++++++++++++ include/uapi/linux/io_uring.h | 10 +++++ io_uring/rw.c | 20 ++++++++++ 13 files changed, 162 insertions(+), 27 deletions(-) -- 2.25.1