Linux SCSI subsystem development
 help / color / mirror / Atom feed
* [PATCH v11 00/13] scsi: scsi_debug: fix zoned write validation
@ 2026-09-29  8:24 Niklas Cassel
  2026-09-29  8:24 ` [PATCH v11 01/13] scsi: scsi_debug: Refuse a zoned device with a non-zero lowest aligned LBA Niklas Cassel
                   ` (13 more replies)
  0 siblings, 14 replies; 17+ messages in thread
From: Niklas Cassel @ 2026-09-29  8:24 UTC (permalink / raw)
  To: James E.J. Bottomley, Martin K. Petersen
  Cc: linux-scsi, Damien Le Moal, John Garry, Niklas Cassel

This series fixes scsi_debug with regards to writes to a ZBC drive, and
to WRITE ATOMIC (16). Each patch describes the problem that it fixes.

Two configurations are refused rather than emulated, and those two
patches come first, as the rest of the series relies on what they
exclude: a zoned device whose lowest aligned LBA is not zero, which no
host writing in units of the reported zone write granularity could ever
write, and atomic writes on a zoned device, which no drive supports.

Little of this is reachable in a default configuration. Most of it needs
physblk_exp, atomic_wr or logical block provisioning to be set, or an
initiator that does not provide a data buffer matching the transfer
length of the command.

The series is based on 7.4/scsi-staging rather than 7.3/scsi-fixes (as
Damien suggested on v1) to avoid a build failure that would have
happened if this series was simply merged with linux-next:

  error: too many arguments to function 'mk_sense_buffer'

Tested on a zoned scsi_debug device with 512 byte logical blocks and a
4096 byte physical block, and on a device that is not zoned for the
WRITE ATOMIC (16) patches. The notes below each patch describe what was
observed before and after it.

Changes since v10:
- Patch 3 is new. A negative physblk_exp was accepted, and the driver
  shifts by it. Sashiko pointed this out.
- Patch 6 caps the offset at the length of the buffer rather than at
  U32_MAX, which is -1 as an off_t on 32-bit architectures, as Sashiko
  pointed out.
- Patch 7 only sets the residual when it is non-zero, as Damien
  suggested. Picked up his Reviewed-by.
- Patch 11 cites SBC-6 4.28.2 in the comment above the new check, as
  John suggested. Picked up his Reviewed-by.

Niklas Cassel (13):
  scsi: scsi_debug: Refuse a zoned device with a non-zero lowest aligned
    LBA
  scsi: scsi_debug: Make atomic writes and ZBC emulation mutually
    exclusive
  scsi: scsi_debug: Refuse a negative physblk_exp
  scsi: scsi_debug: Take the zone metadata lock before the data lock
  scsi: scsi_debug: Evaluate scsi_debug_lbp() only once
  scsi: scsi_debug: Avoid 32-bit overflow in WRITE SCATTERED offsets
  scsi: scsi_debug: Report the residual of a write
  scsi: scsi_debug: Enforce physical block alignment of zoned writes
  scsi: scsi_debug: Do not write a partial physical block to a zoned
    device
  scsi: scsi_debug: Advance the write pointer over the data written
  scsi: scsi_debug: Refuse a short WRITE ATOMIC (16) before writing it
  scsi: scsi_debug: Map the region written by WRITE ATOMIC (16)
  scsi: scsi_debug: Validate the access parameters of WRITE ATOMIC (16)

 drivers/scsi/scsi_debug.c | 143 ++++++++++++++++++++++++++++++--------
 1 file changed, 115 insertions(+), 28 deletions(-)


base-commit: f09d2c7485b32adb82336d0d748935c8237a649e
-- 
2.55.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-10-03 14:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-29  8:24 [PATCH v11 00/13] scsi: scsi_debug: fix zoned write validation Niklas Cassel
2026-09-29  8:24 ` [PATCH v11 01/13] scsi: scsi_debug: Refuse a zoned device with a non-zero lowest aligned LBA Niklas Cassel
2026-09-29  8:24 ` [PATCH v11 02/13] scsi: scsi_debug: Make atomic writes and ZBC emulation mutually exclusive Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 03/13] scsi: scsi_debug: Refuse a negative physblk_exp Niklas Cassel
2026-09-29 13:34   ` Damien Le Moal
2026-09-29  8:25 ` [PATCH v11 04/13] scsi: scsi_debug: Take the zone metadata lock before the data lock Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 05/13] scsi: scsi_debug: Evaluate scsi_debug_lbp() only once Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 06/13] scsi: scsi_debug: Avoid 32-bit overflow in WRITE SCATTERED offsets Niklas Cassel
2026-09-29 13:39   ` Damien Le Moal
2026-09-29  8:25 ` [PATCH v11 07/13] scsi: scsi_debug: Report the residual of a write Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 08/13] scsi: scsi_debug: Enforce physical block alignment of zoned writes Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 09/13] scsi: scsi_debug: Do not write a partial physical block to a zoned device Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 10/13] scsi: scsi_debug: Advance the write pointer over the data written Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 11/13] scsi: scsi_debug: Refuse a short WRITE ATOMIC (16) before writing it Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 12/13] scsi: scsi_debug: Map the region written by WRITE ATOMIC (16) Niklas Cassel
2026-09-29  8:25 ` [PATCH v11 13/13] scsi: scsi_debug: Validate the access parameters of " Niklas Cassel
2026-10-03 14:23 ` [PATCH v11 00/13] scsi: scsi_debug: fix zoned write validation Martin K. Petersen (Oracle)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox