On 10/21/24 8:47 AM, Keith Busch wrote:
On Fri, Oct 18, 2024 at 07:50:32AM +0200, Christoph Hellwig wrote:
On Thu, Oct 17, 2024 at 09:09:32AM -0700, Keith Busch wrote:
{
*kiocb = (struct kiocb) {
.ki_filp = filp,
.ki_flags = filp->f_iocb_flags,
.ki_ioprio = get_current_ioprio(),
+ .ki_write_hint = file_write_hint(filp),
And we'll need to distinguish between the per-inode and per file
hint. I.e. don't blindly initialize ki_write_hint to the per-inode
one here, but make that conditional in the file operation.
Maybe someone wants to do direct-io with partions where each partition
has a different default "hint" when not provided a per-io hint? I don't
know of such a case, but it doesn't sound terrible. In any case, I feel
if you're directing writes through these interfaces, you get to keep all
the pieces: user space controls policy, kernel just provides the
mechanisms to do it.
Is it important to support partitions on top of FDP namespaces? We could
follow the example of zoned block devices and not support partitions on
top of FDP devices. From block/core.c, function add_partition():
/*
* Partitions are not supported on zoned block devices that are used as
* such.
*/
if (bdev_is_zoned(disk->part0)) {
pr_warn("%s: partitions not supported on host managed zoned block
device\n",
disk->disk_name);
return ERR_PTR(-ENXIO);
}
Thanks,
Bart.