Commit 025a1f5029497c12a800a10d4540bf2313413b59
Committed by
James Bottomley
1 parent
1ac7c26d88
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
[SCSI] sd_dif: problem with verify of type 1 protection information (PI)
It appears to me that there is a problem with handling of type 1 protection information. It is considering a logical block reference tag of 0xffffffff to be an error, but it is actually valid any time ((lba & 0xffffffff) == 0xffffffff) [for example, 2TiB-1, 4TiB-1, 6TiB-1, etc.]. I'm going by what's written in 4.18.3 of SBC3, where there doesn't appear to be any invalid value for the reference tag. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Showing 1 changed file with 0 additions and 8 deletions Side-by-side Diff
drivers/scsi/sd_dif.c
... | ... | @@ -93,14 +93,6 @@ |
93 | 93 | if (sdt->app_tag == 0xffff) |
94 | 94 | return 0; |
95 | 95 | |
96 | - /* Bad ref tag received from disk */ | |
97 | - if (sdt->ref_tag == 0xffffffff) { | |
98 | - printk(KERN_ERR | |
99 | - "%s: bad phys ref tag on sector %lu\n", | |
100 | - bix->disk_name, (unsigned long)sector); | |
101 | - return -EIO; | |
102 | - } | |
103 | - | |
104 | 96 | if (be32_to_cpu(sdt->ref_tag) != (sector & 0xffffffff)) { |
105 | 97 | printk(KERN_ERR |
106 | 98 | "%s: ref tag error on sector %lu (rcvd %u)\n", |