> iov_iter_get_pages2() returns a byte count that excludes the offset into
> the first page, but also returns a reference to that page in pages[].
> 
> On the misaligned-I/O fallback, vhost_scsi_revert_map_iov_to_sgl() puts
> pages already added to the SG list. The cleanup loop starts at
> pages[npages], but accounts for its first page as PAGE_SIZE bytes
> rather than PAGE_SIZE - offset. If the remaining data starts at a
> non-zero offset, it can finish one page early and leave a page reference
> behind.
> 
> Use PAGE_SIZE - offset for the first remaining page and clear offset for
> later pages, as in the mapping loop. Without this, each affected request
> leaks one page reference.
> 
> Fixes: bca939d5bcd0 ("vhost-scsi: Dynamically allocate scatterlists")
> Reviewed-by: Mike Christie <[email protected]>
> Signed-off-by: Jia Jia <[email protected]>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=1


Reply via email to