Message ID | 20221108055544.1481583-1-damien.lemoal@opensource.wdc.com (mailing list archive) |
---|---|
Headers | show |
Series | Improve libata support for FUA | expand |
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