Whamcloud - gitweb
LU-13255 gnilnd: Use wait_var_event_warning()
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd.h
index b511c9f..ae0b72f 100644 (file)
@@ -64,7 +64,6 @@
 #include <lnet/lib-lnet.h>
 
 #include <gni_pub.h>
-#include "gnilnd_version.h"
 
 static inline time_t cfs_duration_sec(long duration_jiffies)
 {
@@ -1160,18 +1159,20 @@ do {                                                                    \
 #error "this code uses actions inside LASSERT for ref counting"
 #endif
 
-#define kgnilnd_admin_addref(atomic)                                     \
-do {                                                                            \
-       int     val = atomic_inc_return(&atomic);                               \
-       LASSERTF(val > 0,  #atomic " refcount %d\n", val);                       \
-       CDEBUG(D_NETTRACE, #atomic " refcount %d\n", val);                       \
+#define kgnilnd_admin_addref(atomic)                                   \
+do {                                                                   \
+       int val = atomic_inc_return(&atomic);                           \
+       LASSERTF(val > 0,  #atomic " refcount %d\n", val);              \
+       CDEBUG(D_NETTRACE, #atomic " refcount %d\n", val);              \
 } while (0)
 
-#define kgnilnd_admin_decref(atomic)                                     \
-do {                                                                            \
-       int     val = atomic_dec_return(&atomic);                               \
-       LASSERTF(val >=0,  #atomic " refcount %d\n", val);                        \
-       CDEBUG(D_NETTRACE, #atomic " refcount %d\n", val);                       \
+#define kgnilnd_admin_decref(atomic)                                   \
+do {                                                                   \
+       int val = atomic_dec_return(&atomic);                           \
+       LASSERTF(val >= 0,  #atomic " refcount %d\n", val);             \
+       CDEBUG(D_NETTRACE, #atomic " refcount %d\n", val);              \
+       if (!val)                                                       \
+               wake_up_var(&kgnilnd_data);                             \
 }while (0)
 
 #define kgnilnd_net_addref(net)                                                 \
@@ -1783,16 +1784,16 @@ void kgnilnd_unmap_fma_blocks(kgn_device_t *device);
 void kgnilnd_free_phys_fmablk(kgn_device_t *device);
 
 int kgnilnd_ctl(struct lnet_ni *ni, unsigned int cmd, void *arg);
-void kgnilnd_query(struct lnet_ni *ni, lnet_nid_t nid, time64_t *when);
 int kgnilnd_send(struct lnet_ni *ni, void *private, struct lnet_msg *lntmsg);
 int kgnilnd_eager_recv(struct lnet_ni *ni, void *private,
                        struct lnet_msg *lntmsg, void **new_private);
 int kgnilnd_recv(struct lnet_ni *ni, void *private, struct lnet_msg *lntmsg,
                int delayed, unsigned int niov,
-               struct kvec *iov, lnet_kiov_t *kiov,
+               struct kvec *iov, struct bio_vec *kiov,
                unsigned int offset, unsigned int mlen, unsigned int rlen);
 
-__u16 kgnilnd_cksum_kiov(unsigned int nkiov, lnet_kiov_t *kiov, unsigned int offset, unsigned int nob, int dump_blob);
+__u16 kgnilnd_cksum_kiov(unsigned int nkiov, struct bio_vec *kiov,
+                        unsigned int offset, unsigned int nob, int dump_blob);
 
 /* purgatory functions */
 void kgnilnd_add_purgatory_locked(kgn_conn_t *conn, kgn_peer_t *peer);