Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-15099 kernel: kernel update RHEL7.9 [3.10.0-1160.45.1.el7]
[fs/lustre-release.git]
/
lustre
/
include
/
lustre_handles.h
diff --git
a/lustre/include/lustre_handles.h
b/lustre/include/lustre_handles.h
index
16917ca
..
538f427
100644
(file)
--- a/
lustre/include/lustre_handles.h
+++ b/
lustre/include/lustre_handles.h
@@
-27,7
+27,6
@@
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*/
#ifndef __LUSTRE_HANDLES_H_
*/
#ifndef __LUSTRE_HANDLES_H_
@@
-39,14
+38,10
@@
*/
#include <linux/rcupdate.h>
*/
#include <linux/rcupdate.h>
+#include <linux/refcount.h>
#include <linux/spinlock.h>
#include <libcfs/libcfs.h>
#include <linux/spinlock.h>
#include <libcfs/libcfs.h>
-struct portals_handle_ops {
- void (*hop_addref)(void *object);
- void (*hop_free)(void *object, int size);
-};
-
/* These handles are most easily used by having them appear at the very top of
* whatever object that you want to make handles for. ie:
*
/* These handles are most easily used by having them appear at the very top of
* whatever object that you want to make handles for. ie:
*
@@
-59,27
+54,19
@@
struct portals_handle_ops {
* ldlm_lock. If it's not at the top, you'll want to use container_of()
* to compute the start of the structure based on the handle field. */
struct portals_handle {
* ldlm_lock. If it's not at the top, you'll want to use container_of()
* to compute the start of the structure based on the handle field. */
struct portals_handle {
- struct
list_head
h_link;
+ struct
hlist_node
h_link;
__u64 h_cookie;
__u64 h_cookie;
- const void *h_owner;
- struct portals_handle_ops *h_ops;
-
- /* newly added fields to handle the RCU issue. -jxiong */
+ const char *h_owner;
+ refcount_t h_ref;
struct rcu_head h_rcu;
struct rcu_head h_rcu;
- spinlock_t h_lock;
- unsigned int h_size:31;
- unsigned int h_in:1;
};
/* handles.c */
/* Add a handle to the hash table */
};
/* handles.c */
/* Add a handle to the hash table */
-void class_handle_hash(struct portals_handle *,
- struct portals_handle_ops *ops);
+void class_handle_hash(struct portals_handle *, const char *h_owner);
void class_handle_unhash(struct portals_handle *);
void class_handle_unhash(struct portals_handle *);
-void class_handle_hash_back(struct portals_handle *);
-void *class_handle2object(__u64 cookie, const void *owner);
-void class_handle_free_cb(struct rcu_head *rcu);
+void *class_handle2object(u64 cookie, const char *h_owner);
int class_handle_init(void);
void class_handle_cleanup(void);
int class_handle_init(void);
void class_handle_cleanup(void);