Re: [PATCH 03/21] fs/bdev: Add atomic write support info to statx

Bart Van Assche
2023-10-02T18:39:12Z

On 10/2/23 02:51, John Garry wrote:
> On 01/10/2023 14:23, Bart Van Assche wrote:
>> Is it even possible that stx_atomic_write_unit_min == 0? My
>> understanding is that all Linux filesystems rely on the assumption
>> that writing a single logical block either succeeds or does not
>> happen, even if a power failure occurs between writing and reading
>> a logical block.
>
> Maybe they do rely on this, but is it particularly interesting?
>
> BTW, I would not like to provide assurances that every storage media
> produced writes logical blocks atomically.

Neither the SCSI SBC standard nor the NVMe standard defines a "minimum
atomic write unit". So why to introduce something in the Linux kernel
that is not defined in common storage standards?

I propose to leave out stx_atomic_write_unit_min from
struct statx and also to leave out atomic_write_unit_min_sectors from
struct queue_limits. My opinion is that we should not support block
devices in the Linux kernel that do not write logical blocks atomically.
Block devices that do not write logical blocks atomically are not
compatible with Linux kernel journaling filesystems. Additionally, I'm
not sure it's even possible to write a journaling filesystem for such
block devices.

Thanks,

Bart.