summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorTom Caputi <[email protected]>2017-05-18 20:35:49 -0400
committerBrian Behlendorf <[email protected]>2017-05-18 17:35:49 -0700
commita32df59e187a6187eb96c52b93cf02e8af51f327 (patch)
treed680b6277d7fe6cb7c8b03367514d3abf0088aee /module
parenta9f0d7dd89fd9e09ef41ca98d6ba06bbd3d6ea88 (diff)
Fixed small memory leak in ereport handling
One pre-check in zfs_ereport_start() was being called after the nvlists were being allocated. This simply corrects that issue. Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Giuseppe Di Natale <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Tom Caputi <[email protected]> Closes #6140
Diffstat (limited to 'module')
-rw-r--r--module/zfs/zfs_fm.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/module/zfs/zfs_fm.c b/module/zfs/zfs_fm.c
index 68c0951f6..fedceee19 100644
--- a/module/zfs/zfs_fm.c
+++ b/module/zfs/zfs_fm.c
@@ -210,6 +210,12 @@ zfs_ereport_start(nvlist_t **ereport_out, nvlist_t **detector_out,
(vd->vdev_remove_wanted || vd->vdev_state == VDEV_STATE_REMOVED))
return;
+ if ((strcmp(subclass, FM_EREPORT_ZFS_DELAY) == 0) &&
+ (zio != NULL) && (!zio->io_timestamp)) {
+ /* Ignore bogus delay events */
+ return;
+ }
+
if ((ereport = fm_nvlist_create(NULL)) == NULL)
return;
@@ -218,12 +224,6 @@ zfs_ereport_start(nvlist_t **ereport_out, nvlist_t **detector_out,
return;
}
- if ((strcmp(subclass, FM_EREPORT_ZFS_DELAY) == 0) &&
- (zio != NULL) && (!zio->io_timestamp)) {
- /* Ignore bogus delay events */
- return;
- }
-
/*
* Serialize ereport generation
*/