Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SCSI] scsi_debug: avoid partial copying PI from prot_sglist to dif_s…
…torep If data integrity support is enabled, prot_verify_write() is called in response to WRITE commands and it verifies protection info from prot_sglist by comparing against data sglist, and copies protection info to dif_storep. When multiple blocks are transfered by a WRITE command, it verifies and copies these blocks one by one. So if it fails to verify protection info in the middle of blocks, the actual data transfer to fake_storep isn't proceeded at all although protection info for some blocks are already copied to dif_storep. Therefore, it breaks the data integrity between fake_storep and dif_storep. This fixes it by ensuring that copying protection info to dif_storep is done after all blocks are successfully verified. Reusing dif_copy_prot() with supporting the opposite direction simplifies this fix. Signed-off-by: Akinobu Mita <[email protected]> Acked-by: Martin K. Petersen <[email protected]> Signed-off-by: James Bottomley <[email protected]>
- Loading branch information