gfs2: use workqueue instead of slow-work
[pandora-kernel.git] / fs / gfs2 / main.c
index fb2a5f9..b1e9630 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/init.h>
 #include <linux/gfs2_ondisk.h>
 #include <asm/atomic.h>
-#include <linux/slow-work.h>
 
 #include "gfs2.h"
 #include "incore.h"
@@ -24,6 +23,7 @@
 #include "util.h"
 #include "glock.h"
 #include "quota.h"
+#include "recovery.h"
 
 static struct shrinker qd_shrinker = {
        .shrink = gfs2_shrink_qd_memory,
@@ -138,9 +138,11 @@ static int __init init_gfs2_fs(void)
        if (error)
                goto fail_unregister;
 
-       error = slow_work_register_user(THIS_MODULE);
-       if (error)
-               goto fail_slow;
+       error = -ENOMEM;
+       gfs_recovery_wq = alloc_workqueue("gfs_recovery",
+                                         WQ_NON_REENTRANT | WQ_RESCUER, 0);
+       if (!gfs_recovery_wq)
+               goto fail_wq;
 
        gfs2_register_debugfs();
 
@@ -148,7 +150,7 @@ static int __init init_gfs2_fs(void)
 
        return 0;
 
-fail_slow:
+fail_wq:
        unregister_filesystem(&gfs2meta_fs_type);
 fail_unregister:
        unregister_filesystem(&gfs2_fs_type);
@@ -190,7 +192,7 @@ static void __exit exit_gfs2_fs(void)
        gfs2_unregister_debugfs();
        unregister_filesystem(&gfs2_fs_type);
        unregister_filesystem(&gfs2meta_fs_type);
-       slow_work_unregister_user(THIS_MODULE);
+       destroy_workqueue(gfs_recovery_wq);
 
        kmem_cache_destroy(gfs2_quotad_cachep);
        kmem_cache_destroy(gfs2_rgrpd_cachep);