summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/zfs_fm.c
diff options
context:
space:
mode:
authorek110237 <none@none>2008-04-30 12:37:56 -0700
committerek110237 <none@none>2008-04-30 12:37:56 -0700
commit32b87932f3ef0887d873b7f6d2d1943799b2afc0 (patch)
tree36552efb65bff3a3764c5f7fa51596989cffd6bf /usr/src/uts/common/fs/zfs/zfs_fm.c
parentbc79a93dc140394903e49da4c757f6d4fa1e95d3 (diff)
downloadillumos-gate-32b87932f3ef0887d873b7f6d2d1943799b2afc0.tar.gz
6616739 panic message ZFS: I/O failure (write on <unknown> is not very helpful
6623234 better FMA integration for 'failmode' property 6680971 blkbuf is leaked in zio_assess() on DEBUG bits for truly failed I/Os 6685865 vdev_disk_probe_io()/vdev_file_probe_io() dvd's setting is wrong
Diffstat (limited to 'usr/src/uts/common/fs/zfs/zfs_fm.c')
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_fm.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_fm.c b/usr/src/uts/common/fs/zfs/zfs_fm.c
index 654178a57b..7d9cf5a159 100644
--- a/usr/src/uts/common/fs/zfs/zfs_fm.c
+++ b/usr/src/uts/common/fs/zfs/zfs_fm.c
@@ -48,7 +48,7 @@
* pool X
*
* If we are in a loading state, all errors are chained together by the same
- * SPA-wide ENA.
+ * SPA-wide ENA (Error Numeric Association).
*
* For isolated I/O requests, we get the ENA from the zio_t. The propagation
* gets very complicated due to RAID-Z, gang blocks, and vdev caching. We want
@@ -197,6 +197,16 @@ zfs_ereport_post(const char *subclass, spa_t *spa, vdev_t *vd, zio_t *zio,
FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT, DATA_TYPE_INT32,
spa->spa_load_state, NULL);
+ if (spa != NULL) {
+ fm_payload_set(ereport, FM_EREPORT_PAYLOAD_ZFS_POOL_FAILMODE,
+ DATA_TYPE_STRING,
+ spa_get_failmode(spa) == ZIO_FAILURE_MODE_WAIT ?
+ FM_EREPORT_FAILMODE_WAIT :
+ spa_get_failmode(spa) == ZIO_FAILURE_MODE_CONTINUE ?
+ FM_EREPORT_FAILMODE_CONTINUE : FM_EREPORT_FAILMODE_PANIC,
+ NULL);
+ }
+
if (vd != NULL) {
vdev_t *pvd = vd->vdev_parent;