> 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")
> 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