[PATCH v2 0/2] scsi: bsg: report data copyback failures
From: Yingjie Wang
Date: Fri Oct 23 2026 - 12:23:10 EST
The synchronous and io_uring SCSI BSG completion paths discard the return
value from blk_rq_unmap_user(). For data-in commands that use a bounce
buffer, unmapping copies the completed data back to userspace. A failure
during that copyback is then lost, so SG_IO can return success and
io_uring can post a CQE with res == 0 despite the copyback failure.
Propagate the unmap result while preserving existing sense-copy error
precedence. The two fixes are independent and can be applied separately.
This is v2 of the two error-propagation patches from the six-patch series
posted at:
https://lore.kernel.org/r/cover.1792237341.git.x-professor@xxxxxxxxxxx
Changes in v2:
- Split these two error-propagation fixes from the request-release changes
following Bart Van Assche's review.
- Rebase onto 734bef548a96 (Merge tag 'net-next-7.4').
- Recheck the synchronous Fixes tag. The SG_IO v4 completion helper
already discarded blk_rq_unmap_user() errors when 10e8855b9451
introduced the ioctl path.
- Rerun the focused build and the synchronous and io_uring QEMU tests on
the new base and final trees.
Validation on x86_64 used QEMU 8.2.2 and a virtio-scsi disk. On the base
tree, ioctl() returned 0 and the io_uring CQE had res == 0 in 20/20 runs
despite the copyback failure. With this series applied, ioctl() returned
-1 with errno EFAULT in 20/20 runs, and the io_uring CQE had
res == -EFAULT in 20/20 runs. Writable controls succeeded in 20/20 runs
in both trees, and the guest logs contained no BUG, WARNING, KASAN,
UBSAN, or panic diagnostics.
The base and final trees also completed:
make O=<build-dir> -j24 W=1 CONFIG_WERROR= bzImage
The command used CONFIG_WERROR= because the saved configuration enables
WERROR and the full W=1 build reports pre-existing warnings in unrelated
files. No warning was emitted for drivers/scsi/scsi_bsg.c.
An AI coding assistant was used to inspect the reviewed series, verify the
history and call paths, and prepare this reroll. The code and test results
are provided for human review.
Yingjie Wang (2):
scsi: bsg: report synchronous data copyback failures
scsi: bsg: report io_uring data copyback failures
drivers/scsi/scsi_bsg.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
base-commit: 734bef548a96e8774d6eef5dfa2026c6edc4e80b
--
2.43.0