mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
zinject: inject device errors into ioctls
Adds 'ioctl' as a valid IO type for device error injection, so we can simulate a flush error (which OpenZFS currently ignores, but that's by the by). To support this, adding ZIO_STAGE_VDEV_IO_DONE to ZIO_IOCTL_PIPELINE, since that's where device error injection happens. This needs a small exclusion to avoid the vdev_queue, since flushes are not queued, and I'm assuming that the various failure responses are still reasonable for flush failures (probes, media change, etc). This seems reasonable to me, as a flush failure is not unlike a write failure in this regard, however this may be too aggressive or subtle to assume in just this change. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Closes #16061
This commit is contained in:
+3
-1
@@ -19,10 +19,11 @@
|
||||
.\" CDDL HEADER END
|
||||
.\"
|
||||
.\" Copyright 2013 Darik Horn <dajhorn@vanadac.com>. All rights reserved.
|
||||
.\" Copyright (c) 2024, Klara Inc.
|
||||
.\"
|
||||
.\" lint-ok: WARNING: sections out of conventional order: Sh SYNOPSIS
|
||||
.\"
|
||||
.Dd May 26, 2021
|
||||
.Dd April 4, 2024
|
||||
.Dt ZINJECT 8
|
||||
.Os
|
||||
.
|
||||
@@ -257,6 +258,7 @@ Run for this many seconds before reporting failure.
|
||||
.It Fl T Ar failure
|
||||
Set the failure type to one of
|
||||
.Sy all ,
|
||||
.Sy ioctl ,
|
||||
.Sy claim ,
|
||||
.Sy free ,
|
||||
.Sy read ,
|
||||
|
||||
@@ -404,7 +404,7 @@ ZIO_STAGE_DVA_CLAIM:0x00080000:---C--
|
||||
ZIO_STAGE_READY:0x00100000:RWFCIT
|
||||
|
||||
ZIO_STAGE_VDEV_IO_START:0x00200000:RW--IT
|
||||
ZIO_STAGE_VDEV_IO_DONE:0x00400000:RW---T
|
||||
ZIO_STAGE_VDEV_IO_DONE:0x00400000:RW--IT
|
||||
ZIO_STAGE_VDEV_IO_ASSESS:0x00800000:RW--IT
|
||||
|
||||
ZIO_STAGE_CHECKSUM_VERIFY:0x01000000:R-----
|
||||
|
||||
Reference in New Issue
Block a user