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
Revert "LU-2800 autoconf: remove LC_PROCFS_USERS test"
[fs/lustre-release.git]
/
lustre
/
obdclass
/
lustre_handles.c
diff --git
a/lustre/obdclass/lustre_handles.c
b/lustre/obdclass/lustre_handles.c
index
4d13acc
..
e090a8a
100644
(file)
--- a/
lustre/obdclass/lustre_handles.c
+++ b/
lustre/obdclass/lustre_handles.c
@@
-27,7
+27,7
@@
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 201
2
, Intel Corporation.
+ * Copyright (c) 2011, 201
3
, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
/*
* This file is part of Lustre, http://www.lustre.org/
@@
-89,7
+89,6
@@
void class_handle_hash(struct portals_handle *h,
spin_lock(&handle_base_lock);
handle_base += HANDLE_INCR;
spin_lock(&handle_base_lock);
handle_base += HANDLE_INCR;
- h->h_cookie = handle_base;
if (unlikely(handle_base == 0)) {
/*
* Cookie of zero is "dangerous", because in many places it's
if (unlikely(handle_base == 0)) {
/*
* Cookie of zero is "dangerous", because in many places it's
@@
-99,6
+98,7
@@
void class_handle_hash(struct portals_handle *h,
CWARN("The universe has been exhausted: cookie wrap-around.\n");
handle_base += HANDLE_INCR;
}
CWARN("The universe has been exhausted: cookie wrap-around.\n");
handle_base += HANDLE_INCR;
}
+ h->h_cookie = handle_base;
spin_unlock(&handle_base_lock);
h->h_ops = ops;
spin_unlock(&handle_base_lock);
h->h_ops = ops;
@@
-164,7
+164,7
@@
void class_handle_hash_back(struct portals_handle *h)
}
EXPORT_SYMBOL(class_handle_hash_back);
}
EXPORT_SYMBOL(class_handle_hash_back);
-void *class_handle2object(__u64 cookie)
+void *class_handle2object(__u64 cookie
, const void *owner
)
{
struct handle_bucket *bucket;
struct portals_handle *h;
{
struct handle_bucket *bucket;
struct portals_handle *h;
@@
-179,7
+179,7
@@
void *class_handle2object(__u64 cookie)
rcu_read_lock();
list_for_each_entry_rcu(h, &bucket->head, h_link) {
rcu_read_lock();
list_for_each_entry_rcu(h, &bucket->head, h_link) {
-
if (h->h_cookie != cookie
)
+
if (h->h_cookie != cookie || h->h_owner != owner
)
continue;
spin_lock(&h->h_lock);
continue;
spin_lock(&h->h_lock);