Re: [PATCHv8 1/6] block, fs: restore kiocb based write hint processing

Bart Van Assche
2024-10-21T17:18:35Z

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.