]> git.proxmox.com Git - mirror_spl.git/commitdiff
De-inline spl_kthread_create().
authorTim Chase <tim@onlight.com>
Wed, 9 Apr 2014 18:40:12 +0000 (13:40 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 10 Apr 2014 02:17:12 +0000 (19:17 -0700)
The function was defined as a static inline with variable arguments
which causes gcc to generate errors on some distros.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #346

include/sys/thread.h
module/spl/spl-thread.c

index f6c197255dfef6688bcf57767abd0011962608a6..433a0761d165028cfb8762403cae57f9bf7eab85 100644 (file)
@@ -59,33 +59,7 @@ extern kthread_t *__thread_create(caddr_t stk, size_t  stksize,
                                   void *args, size_t len, proc_t *pp,
                                   int state, pri_t pri);
 extern void __thread_exit(void);
-
-/*
- * spl_kthread_create - Wrapper providing pre-3.13 semantics for
- * kthread_create() in which it is not killable and less likely
- * to return -ENOMEM.
- */
-static inline struct task_struct *
-spl_kthread_create(int (*func)(void *), void *data, const char namefmt[], ...)
-{
-       struct task_struct *tsk;
-       va_list args;
-
-       va_start(args, namefmt);
-       do {
-               tsk = kthread_create_on_node(func, data,
-                       -1, namefmt, args);
-               if (IS_ERR(tsk)) {
-                       if (signal_pending(current)) {
-                               clear_thread_flag(TIF_SIGPENDING);
-                               continue;
-                       }
-                       if (PTR_ERR(tsk) == -ENOMEM)
-                               continue;
-                       return (NULL);
-               } else
-                       return (tsk);
-       } while (1);
-}
+extern struct task_struct *spl_kthread_create(int (*func)(void *),
+                       void *data, const char namefmt[], ...);
 
 #endif  /* _SPL_THREAD_H */
index b0fa4d7956f9d3676ebb685497a124b111c0539e..a74b9d9accbfcd97ddf44696676981f19a282aa4 100644 (file)
@@ -137,3 +137,31 @@ __thread_create(caddr_t stk, size_t  stksize, thread_func_t func,
        SRETURN((kthread_t *)tsk);
 }
 EXPORT_SYMBOL(__thread_create);
+
+/*
+ * spl_kthread_create - Wrapper providing pre-3.13 semantics for
+ * kthread_create() in which it is not killable and less likely
+ * to return -ENOMEM.
+ */
+struct task_struct *
+spl_kthread_create(int (*func)(void *), void *data, const char namefmt[], ...)
+{
+       struct task_struct *tsk;
+       va_list args;
+
+       va_start(args, namefmt);
+       do {
+               tsk = kthread_create(func, data, namefmt, args);
+               if (IS_ERR(tsk)) {
+                       if (signal_pending(current)) {
+                               clear_thread_flag(TIF_SIGPENDING);
+                               continue;
+                       }
+                       if (PTR_ERR(tsk) == -ENOMEM)
+                               continue;
+                       return (NULL);
+               } else
+                       return (tsk);
+       } while (1);
+}
+EXPORT_SYMBOL(spl_kthread_create);