On 10/28/22 19:58, Yu Kuai wrote:
This reverts commit 84f7a9de0602704bbec774a6c7f7c8c4994bee9c. Because it introduces a problem that rq->__data_len is set to the wrong value. before this patch: 1) nr_bytes = rq->__data_len 2) rq->__data_len = sdp->sector_size 3) scsi_init_io() 4) rq->__data_len = nr_bytes after this patch: 1) rq->__data_len = sdp->sector_size 2) scsi_init_io() 3) rq->__data_len = rq->__data_len -> __data_len is wrong It will cause that io can only complete one segment each time, and the io will requeue in scsi_io_completion_action(), which will cause severe performance degradation.
It's probably worth mentioning that the code affected by this patch has been removed from the master branch and hence that this patch is only needed for stable kernels. Anyway:
Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>