X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Flustre_handles.c;h=dcdc4fa28aca9b9bd3261c3b877444bf67cf5665;hp=08271782a6480cd8a3d8df0ddb32d19cea1ece70;hb=2d1be90507fc1f42f565d9e672c634b3855cb978;hpb=1f1d3a376d488d715dd1b0c94d5b66ea05c1e6ca diff --git a/lustre/obdclass/lustre_handles.c b/lustre/obdclass/lustre_handles.c index 0827178..dcdc4fa 100644 --- a/lustre/obdclass/lustre_handles.c +++ b/lustre/obdclass/lustre_handles.c @@ -15,11 +15,7 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ @@ -27,7 +23,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/ @@ -98,7 +94,7 @@ void class_handle_hash(struct portals_handle *h, h->h_in = 1; spin_unlock(&bucket->lock); - CDEBUG(D_INFO, "added object %p with handle "LPX64" to hash\n", + CDEBUG(D_INFO, "added object %p with handle %#llx to hash\n", h, h->h_cookie); EXIT; } @@ -107,12 +103,12 @@ EXPORT_SYMBOL(class_handle_hash); static void class_handle_unhash_nolock(struct portals_handle *h) { if (list_empty(&h->h_link)) { - CERROR("removing an already-removed handle ("LPX64")\n", + CERROR("removing an already-removed handle (%#llx)\n", h->h_cookie); return; } - CDEBUG(D_INFO, "removing object %p with handle "LPX64" from hash\n", + CDEBUG(D_INFO, "removing object %p with handle %#llx from hash\n", h, h->h_cookie); spin_lock(&h->h_lock); @@ -184,10 +180,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); @@ -199,7 +198,7 @@ EXPORT_SYMBOL(class_handle_free_cb); int class_handle_init(void) { struct handle_bucket *bucket; - struct timeval tv; + struct timespec64 ts; int seed[2]; LASSERT(handle_hash == NULL); @@ -217,8 +216,8 @@ int class_handle_init(void) /** 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]); + ktime_get_ts64(&ts); + cfs_srand(ts.tv_sec ^ seed[0], ts.tv_nsec ^ seed[1]); cfs_get_random_bytes(&handle_base, sizeof(handle_base)); LASSERT(handle_base != 0ULL); @@ -236,7 +235,7 @@ static int cleanup_all_handles(void) spin_lock(&handle_hash[i].lock); list_for_each_entry_rcu(h, &(handle_hash[i].head), h_link) { - CERROR("force clean handle "LPX64" addr %p ops %p\n", + CERROR("force clean handle %#llx addr %p ops %p\n", h->h_cookie, h, h->h_ops); class_handle_unhash_nolock(h);