mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
[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>
This commit is contained in:
parent
1ac7c26d88
commit
025a1f5029
@ -93,14 +93,6 @@ static int sd_dif_type1_verify(struct blk_integrity_exchg *bix, csum_fn *fn)
|
||||
if (sdt->app_tag == 0xffff)
|
||||
return 0;
|
||||
|
||||
/* Bad ref tag received from disk */
|
||||
if (sdt->ref_tag == 0xffffffff) {
|
||||
printk(KERN_ERR
|
||||
"%s: bad phys ref tag on sector %lu\n",
|
||||
bix->disk_name, (unsigned long)sector);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (be32_to_cpu(sdt->ref_tag) != (sector & 0xffffffff)) {
|
||||
printk(KERN_ERR
|
||||
"%s: ref tag error on sector %lu (rcvd %u)\n",
|
||||
|
Loading…
Reference in New Issue
Block a user