Doug, > I checked the code for the ABORTED COMMAND asc=0x10 case. That is a > bunch of Protection Information errors which retrying would be > pointless. And the existing code does check for that just before the > new check for BLIST_ABORTED_CMD_QUIRK. The PI check has the cryptic > comment /* DIF */ and we also have 'T10 DIF' appearing in > defines. 'DIF' is mentioned _once_ in the T10 drafts thatI can find > (in sbc4r15.pdf the last sentence of section 4.22.1) and is not > cross-referenced anywhere that I can find. > > So anyway, Martin (P.), could we have and explanation somewhere > prominent in our code what DIF and DIX mean in SCSI (and other > standards) terms? At the time this code was written, the T10 Protection Information Model was called Data Integrity Field or DIF. DIF turned out to clash with the three letter acronym for another T10 feature in development. As a result, the integrity field was re-branded protection information. However, the new name didn't really take off. And despite the spec being consistent in its use of T10 PIM/PI, people in the industry generally still refer to it as "DIF". Easier to pronounce and not much risk of confusion (to my knowledge, the other "DIF" in T10 never really came to fruition). You'll note that the more recent integrity profile stuff is located in block/t10-pi.c. But that the profile strings still use "DIF" to avoid breaking existing apps. I have been contemplating renaming sd_dif.c to sd_dix.c since all the DIF/PI stuff has moved to sd.c over the years. The only thing left in sd_dif.c at this point is DIX functionality... -- Martin K. Petersen Oracle Linux Engineering