From: Akinobu Mita Date: Wed, 18 Sep 2013 12:27:26 +0000 (+0900) Subject: [SCSI] scsi_debug: avoid partial copying PI from prot_sglist to dif_storep X-Git-Tag: v3.13-rc1~99^2~41 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65f72f2a2fe89f072d6a88e5cd69a64270b9c436;p=pandora-kernel.git [SCSI] scsi_debug: avoid partial copying PI from prot_sglist to dif_storep 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 Acked-by: Martin K. Petersen Signed-off-by: James Bottomley --- Reading git-diff-tree failed