Illumos #3447 improve the comment in txg.c
[zfs.git] / module / zfs / zio_inject.c
index 16eaed6..293f267 100644 (file)
@@ -46,7 +46,7 @@
 #include <sys/dmu_objset.h>
 #include <sys/fs/zfs.h>
 
-uint32_t zio_injection_enabled;
+uint32_t zio_injection_enabled = 0;
 
 typedef struct inject_handler {
        int                     zi_id;
@@ -476,7 +476,6 @@ int
 zio_clear_fault(int id)
 {
        inject_handler_t *handler;
-       int ret;
 
        rw_enter(&inject_lock, RW_WRITER);
 
@@ -486,18 +485,18 @@ zio_clear_fault(int id)
                        break;
 
        if (handler == NULL) {
-               ret = ENOENT;
-       } else {
-               list_remove(&inject_handlers, handler);
-               spa_inject_delref(handler->zi_spa);
-               kmem_free(handler, sizeof (inject_handler_t));
-               atomic_add_32(&zio_injection_enabled, -1);
-               ret = 0;
+               rw_exit(&inject_lock);
+               return (ENOENT);
        }
 
+       list_remove(&inject_handlers, handler);
        rw_exit(&inject_lock);
 
-       return (ret);
+       spa_inject_delref(handler->zi_spa);
+       kmem_free(handler, sizeof (inject_handler_t));
+       atomic_add_32(&zio_injection_enabled, -1);
+
+       return (0);
 }
 
 void
@@ -514,3 +513,8 @@ zio_inject_fini(void)
        list_destroy(&inject_handlers);
        rw_destroy(&inject_lock);
 }
+
+#if defined(_KERNEL) && defined(HAVE_SPL)
+module_param(zio_injection_enabled, int, 0644);
+MODULE_PARM_DESC(zio_injection_enabled, "Enable fault injection");
+#endif