X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fupcall_cache.c;h=5622410784d7a227f092196026e626d5a960cb74;hb=03364148c01ffe7bb2f2abfde84bbc36dc4d8237;hp=079061761766f7637104788d261ddf3c7b901039;hpb=72057a3af19ee02d9a686bd7e7d074917e381310;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/upcall_cache.c b/lustre/obdclass/upcall_cache.c index 0790617..5622410 100644 --- a/lustre/obdclass/upcall_cache.c +++ b/lustre/obdclass/upcall_cache.c @@ -23,7 +23,7 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, 2014, Intel Corporation. + * Copyright (c) 2012, 2016, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -36,7 +36,7 @@ #define DEBUG_SUBSYSTEM S_SEC #include -#include +#include #include static struct upcall_cache_entry *alloc_entry(struct upcall_cache *cache, @@ -114,14 +114,14 @@ static inline void put_entry(struct upcall_cache *cache, static int check_unlink_entry(struct upcall_cache *cache, struct upcall_cache_entry *entry) { - if (UC_CACHE_IS_VALID(entry) && - cfs_time_before(cfs_time_current(), entry->ue_expire)) + time64_t now = ktime_get_seconds(); + + if (UC_CACHE_IS_VALID(entry) && now < entry->ue_expire) return 0; if (UC_CACHE_IS_ACQUIRING(entry)) { if (entry->ue_acquire_expire == 0 || - cfs_time_before(cfs_time_current(), - entry->ue_acquire_expire)) + now < entry->ue_acquire_expire) return 0; UC_CACHE_SET_EXPIRED(entry); @@ -148,7 +148,7 @@ struct upcall_cache_entry *upcall_cache_get_entry(struct upcall_cache *cache, { struct upcall_cache_entry *entry = NULL, *new = NULL, *next; struct list_head *head; - wait_queue_t wait; + wait_queue_entry_t wait; int rc, found; ENTRY; @@ -197,8 +197,8 @@ find_again: spin_unlock(&cache->uc_lock); rc = refresh_entry(cache, entry); spin_lock(&cache->uc_lock); - entry->ue_acquire_expire = - cfs_time_shift(cache->uc_acquire_expire); + entry->ue_acquire_expire = ktime_get_seconds() + + cache->uc_acquire_expire; if (rc < 0) { UC_CACHE_CLEAR_ACQUIRING(entry); UC_CACHE_SET_INVALID(entry); @@ -339,7 +339,7 @@ int upcall_cache_downcall(struct upcall_cache *cache, __u32 err, __u64 key, if (rc) GOTO(out, rc); - entry->ue_expire = cfs_time_shift(cache->uc_entry_expire); + entry->ue_expire = ktime_get_seconds() + cache->uc_entry_expire; UC_CACHE_SET_VALID(entry); CDEBUG(D_OTHER, "%s: created upcall cache entry %p for key %llu\n", cache->uc_name, entry, entry->ue_key); @@ -399,10 +399,10 @@ void upcall_cache_flush_one(struct upcall_cache *cache, __u64 key, void *args) if (found) { CWARN("%s: flush entry %p: key %llu, ref %d, fl %x, " - "cur %lu, ex %ld/%ld\n", + "cur %lld, ex %lld/%lld\n", cache->uc_name, entry, entry->ue_key, atomic_read(&entry->ue_refcount), entry->ue_flags, - cfs_time_current_sec(), entry->ue_acquire_expire, + ktime_get_real_seconds(), entry->ue_acquire_expire, entry->ue_expire); UC_CACHE_SET_EXPIRED(entry); if (!atomic_read(&entry->ue_refcount))