Whamcloud - gitweb
LU-7434 ptlrpc: lost bulk leads to a hang
[fs/lustre-release.git] / lustre / obdclass / lustre_handles.c
index e4dc355..f79404b 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2013, Intel Corporation.
+ * Copyright (c) 2011, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
  */
 
 #define DEBUG_SUBSYSTEM S_CLASS
-#ifndef __KERNEL__
-# include <liblustre.h>
-#endif
 
 #include <obd_support.h>
 #include <lustre_handles.h>
 #include <lustre_lib.h>
 
-#ifndef __KERNEL__
-# define list_add_rcu            list_add
-# define list_del_rcu            list_del
-# define list_for_each_rcu       list_for_each
-# define list_for_each_safe_rcu  list_for_each_safe
-# define list_for_each_entry_rcu list_for_each_entry
-# define rcu_read_lock()         spin_lock(&bucket->lock)
-# define rcu_read_unlock()       spin_unlock(&bucket->lock)
-#endif /* !__KERNEL__ */
 
 static __u64 handle_base;
 #define HANDLE_INCR 7
@@ -196,10 +184,13 @@ void *class_handle2object(__u64 cookie, const void *owner)
 }
 EXPORT_SYMBOL(class_handle2object);
 
-void class_handle_free_cb(cfs_rcu_head_t *rcu)
+void class_handle_free_cb(struct rcu_head *rcu)
 {
-       struct portals_handle *h = RCU2HANDLE(rcu);
-       void *ptr = (void *)(unsigned long)h->h_cookie;
+       struct portals_handle *h;
+       void *ptr;
+
+       h = container_of(rcu, struct portals_handle, h_rcu);
+       ptr = (void *)(unsigned long)h->h_cookie;
 
        if (h->h_ops->hop_free != NULL)
                h->h_ops->hop_free(ptr, h->h_size);