Skip to content

Commit 2d62253

Browse files
kawasakimartinkpetersen
authored andcommitted
scsi: scsi_debug: Zero clear zones at reset write pointer
When a reset is requested the position of the write pointer is updated but the data in the corresponding zone is not cleared. Instead scsi_debug returns any data written before the write pointer was reset. This is an error and prevents using scsi_debug for stale page cache testing of the BLKRESETZONE ioctl. Zero written data in the zone when resetting the write pointer. Link: https://lore.kernel.org/r/20211122061223.298890-1-shinichiro.kawasaki@wdc.com Fixes: f0d1cf9 ("scsi: scsi_debug: Add ZBC zone commands") Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Acked-by: Douglas Gilbert <dgilbert@interlog.com> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent eb97545 commit 2d62253

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

drivers/scsi/scsi_debug.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4657,6 +4657,7 @@ static void zbc_rwp_zone(struct sdebug_dev_info *devip,
46574657
struct sdeb_zone_state *zsp)
46584658
{
46594659
enum sdebug_z_cond zc;
4660+
struct sdeb_store_info *sip = devip2sip(devip, false);
46604661

46614662
if (zbc_zone_is_conv(zsp))
46624663
return;
@@ -4668,6 +4669,10 @@ static void zbc_rwp_zone(struct sdebug_dev_info *devip,
46684669
if (zsp->z_cond == ZC4_CLOSED)
46694670
devip->nr_closed--;
46704671

4672+
if (zsp->z_wp > zsp->z_start)
4673+
memset(sip->storep + zsp->z_start * sdebug_sector_size, 0,
4674+
(zsp->z_wp - zsp->z_start) * sdebug_sector_size);
4675+
46714676
zsp->z_non_seq_resource = false;
46724677
zsp->z_wp = zsp->z_start;
46734678
zsp->z_cond = ZC1_EMPTY;

0 commit comments

Comments
 (0)