Re: [PATCH v6 0/7] Improve libata support for FUA

Maciej S. Szmigiero
2022-12-29T18:19:11Z

On 8.11.2022 06:55, Damien Le Moal wrote:
> These patches cleanup and improve libata support for ATA devices
> supporting the FUA feature.
>
> The first patch modifies the block layer to prevent the use of REQ_FUA
> with read requests. This is necessary as the block layer code expect
> REQ_FUA to be used with write requests (the flush machinery cannot
> enforce access to the media for FUA read commands) and FUA is not
> supported with ATA devices when NCQ is not enabled (device queue depth
> set to 1).
>
> Patch 2 and 3 are libata cleanup preparatory patches. Patch 4 cleans up
> the detection for FUA support. Patch 5 fixes building a taskfile for FUA
> write requests. Patch 6 prevents the use of FUA with known bad drives.
>
> Finally, patch 7 enables FUA support by default in libata for devices
> supporting this features.
>
> Changes from v5:
> - Removed WARN for FUA reads in patch 5.
> - Added reviewed-by tags.
>
> Changes from v4:
> - Changed patch 1 to the one suggested by Christoph.
> - Added Hannes review tag.
>
> Changes from v3:
> - Added patch 1 to prevent any block device user from issuing a
> REQ_FUA read.
> - Changed patch 5 to remove the check for REQ_FUA read and also remove
> support for ATA_CMD_WRITE_MULTI_FUA_EXT as this command is obsolete
> in recent ACS specifications.
>
> Changes from v2:
> - Added patch 1 and 2 as preparatory patches
> - Added patch 4 to fix FUA writes handling for the non-ncq case. Note
> that it is possible that the drives blacklisted in patch 5 are
> actually OK since the code back in 2012 had the issue with the wrong
> use of LBA 28 commands for FUA writes.
>
> Changes from v1:
> - Removed Maciej's patch 2. Instead, blacklist drives which are known
> to have a buggy FUA support.
>
> Christoph Hellwig (1):
> block: add a sanity check for non-write flush/fua bios
>
> Damien Le Moal (6):
> ata: libata: Introduce ata_ncq_supported()
> ata: libata: Rename and cleanup ata_rwcmd_protocol()
> ata: libata: cleanup fua support detection
> ata: libata: Fix FUA handling in ata_build_rw_tf()
> ata: libata: blacklist FUA support for known buggy drives
> ata: libata: Enable fua support by default
>

Now that 6.2-rc1 is out can this patch set be merged?

Thanks,
Maciej