diff options
author | Tom Caputi <[email protected]> | 2017-05-18 20:35:49 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-05-18 17:35:49 -0700 |
commit | a32df59e187a6187eb96c52b93cf02e8af51f327 (patch) | |
tree | d680b6277d7fe6cb7c8b03367514d3abf0088aee /module | |
parent | a9f0d7dd89fd9e09ef41ca98d6ba06bbd3d6ea88 (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.c | 12 |
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 */ |