Whamcloud - gitweb
LU-14436 tgt: only use T10PI guard when doing full sector read 77/41677/2
authorLi Dongyang <dongyangli@ddn.com>
Tue, 16 Feb 2021 12:40:05 +0000 (23:40 +1100)
committerOleg Drokin <green@whamcloud.com>
Mon, 22 Feb 2021 19:27:29 +0000 (19:27 +0000)
The T10PI guard was generated on full sectors, if we
do we partial read and still use the guard, the rpc
checksum won't match.

Test-Parameters: trivial
Change-Id: I40d481d703a46b9711021a162208b86a956bd8d1
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-on: https://review.whamcloud.com/41677
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Wang Shilong <wshilong@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/target/tgt_handler.c

index 340d491..4558c37 100644 (file)
@@ -2074,6 +2074,7 @@ static int tgt_checksum_niobuf_t10pi(struct lu_target *tgt,
                 * whole page
                 */
                if (t10_cksum_type && opc == OST_READ &&
+                   local_nb[i].lnb_len == PAGE_SIZE &&
                    local_nb[i].lnb_guard_disk) {
                        used = DIV_ROUND_UP(local_nb[i].lnb_len, sector_size);
                        if (used > (guard_number - used_number)) {