瀏覽代碼

[SCSI] scsi_debug: invalidate protection info for unmapped region

When UNMAP command is issued with the data integrity support enabled,
the protection info for the unmapped region is remain unchanged.
So READ command for the region later on causes data integrity failure.

This fixes it by invalidating protection info for the unmapped region
by filling with 0xff pattern.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Douglas Gilbert <dgilbert@interlog.com>
Acked-by: "Martin K. Petersen" <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Akinobu Mita 12 年之前
父節點
當前提交
e9926b4376
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      drivers/scsi/scsi_debug.c

+ 5 - 0
drivers/scsi/scsi_debug.c

@@ -2064,6 +2064,11 @@ static void unmap_region(sector_t lba, unsigned int len)
 				       scsi_debug_sector_size *
 				       scsi_debug_sector_size *
 				       scsi_debug_unmap_granularity);
 				       scsi_debug_unmap_granularity);
 			}
 			}
+			if (dif_storep) {
+				memset(dif_storep + lba, 0xff,
+				       sizeof(*dif_storep) *
+				       scsi_debug_unmap_granularity);
+			}
 		}
 		}
 		lba = map_index_to_lba(index + 1);
 		lba = map_index_to_lba(index + 1);
 	}
 	}