Whamcloud - gitweb
LU-2800 autoconf: remove LC_RW_TREE_LOCK test
[fs/lustre-release.git] / lustre / obdclass / lustre_handles.c
index 268545b..4833256 100644 (file)
@@ -164,7 +164,7 @@ void class_handle_hash_back(struct portals_handle *h)
 }
 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;
@@ -179,7 +179,7 @@ void *class_handle2object(__u64 cookie)
 
         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);
@@ -227,10 +227,10 @@ int class_handle_init(void)
                spin_lock_init(&bucket->lock);
        }
 
-        /** bug 21430: add randomness to the initial base */
-        cfs_get_random_bytes(seed, sizeof(seed));
-        cfs_gettimeofday(&tv);
-        cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]);
+       /** bug 21430: add randomness to the initial base */
+       cfs_get_random_bytes(seed, sizeof(seed));
+       do_gettimeofday(&tv);
+       cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]);
 
         cfs_get_random_bytes(&handle_base, sizeof(handle_base));
         LASSERT(handle_base != 0ULL);