Whamcloud - gitweb
LU-6142 lnet: convert kiblnd/ksocknal_thread_start to vararg
[fs/lustre-release.git] / lnet / klnds / o2iblnd / o2iblnd.h
index e2d05be..26956a3 100644 (file)
@@ -348,6 +348,7 @@ struct kib_fast_reg_descriptor { /* For fast registration */
 #endif
        struct ib_mr                    *frd_mr;
        bool                             frd_valid;
+       bool                             frd_posted;
 };
 
 struct kib_fmr_pool {
@@ -1092,7 +1093,15 @@ int  kiblnd_tunables_init(void);
 
 int  kiblnd_connd (void *arg);
 int  kiblnd_scheduler(void *arg);
-int  kiblnd_thread_start(int (*fn)(void *arg), void *arg, char *name);
+#define kiblnd_thread_start(fn, data, namefmt, arg...)                 \
+       ({                                                              \
+               struct task_struct *__task = kthread_run(fn, data,      \
+                                                        namefmt, ##arg); \
+               if (!IS_ERR(__task))                                    \
+                       atomic_inc(&kiblnd_data.kib_nthreads);          \
+               PTR_ERR_OR_ZERO(__task);                                \
+       })
+
 int  kiblnd_failover_thread (void *arg);
 
 int kiblnd_alloc_pages(struct kib_pages **pp, int cpt, int npages);