diff --git a/fan_speed.cpp b/fan_speed.cpp
index 459b9d0..5e4c9fc 100644
--- a/fan_speed.cpp
+++ b/fan_speed.cpp
@@ -2,6 +2,10 @@
 #include "hwmon.hpp"
 #include "sysfs.hpp"
 #include <experimental/filesystem>
+#include <phosphor-logging/elog-errors.hpp>
+#include <xyz/openbmc_project/Control/Device/error.hpp>
+
+using namespace phosphor::logging;
 
 namespace hwmon
 {
@@ -13,12 +17,25 @@
     if (curValue != value)
     {
         //Write target out to sysfs
-        curValue = sysfs::writeSysfsWithCallout(value,
-                                                sysfsRoot,
-                                                instance,
-                                                type,
-                                                id,
-                                                entry::target);
+        try
+        {
+            ioAccess.write(
+                    value,
+                    type,
+                    id,
+                    entry::target);
+        }
+        catch (const std::system_error& e)
+        {
+            using namespace sdbusplus::xyz::openbmc_project::Control::
+                Device::Error;
+            report<WriteFailure>(
+                    xyz::openbmc_project::Control::Device::
+                        WriteFailure::CALLOUT_ERRNO(e.code().value()),
+                    xyz::openbmc_project::Control::Device::
+                        WriteFailure::CALLOUT_DEVICE_PATH(devPath.c_str()));
+            exit(EXIT_FAILURE);
+        }
     }
 
     return FanSpeedObject::target(value);
@@ -29,8 +46,7 @@
 {
     namespace fs = std::experimental::filesystem;
 
-    auto path = sysfsRoot + "/" + instance;
-    auto fullPath = sysfs::make_sysfs_path(path,
+    auto fullPath = sysfs::make_sysfs_path(ioAccess.path(),
                                            type::pwm,
                                            id,
                                            entry::enable);
@@ -38,12 +54,25 @@
     if (fs::exists(fullPath))
     {
         //This class always uses RPM mode
-        sysfs::writeSysfsWithCallout(enable::rpmMode,
-                                     sysfsRoot,
-                                     instance,
-                                     type::pwm,
-                                     id,
-                                     entry::enable);
+        try
+        {
+            ioAccess.write(
+                    enable::rpmMode,
+                    type::pwm,
+                    id,
+                    entry::enable);
+        }
+        catch (const std::system_error& e)
+        {
+            using namespace sdbusplus::xyz::openbmc_project::Control::
+                Device::Error;
+            phosphor::logging::report<WriteFailure>(
+                    xyz::openbmc_project::Control::Device::
+                        WriteFailure::CALLOUT_ERRNO(e.code().value()),
+                    xyz::openbmc_project::Control::Device::
+                        WriteFailure::CALLOUT_DEVICE_PATH(devPath.c_str()));
+            exit(EXIT_FAILURE);
+        }
     }
 }
 
