X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_import.h;h=f32c9ef5d1e401e20eec57313e12e65ae127775e;hb=ff0c89a73e141ce019ee2a94e5d01a8a37dd830a;hp=0e93bcc8b83432ed1d87033a84c4ccf6be1d34f7;hpb=f95393b0d0a59cf3dc2f29cffc35dcc4cc9d7728;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_import.h b/lustre/include/lustre_import.h index 0e93bcc..f32c9ef 100644 --- a/lustre/include/lustre_import.h +++ b/lustre/include/lustre_import.h @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,6 +26,8 @@ /* * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -124,6 +124,8 @@ enum obd_import_event { IMP_EVENT_INVALIDATE = 0x808003, IMP_EVENT_ACTIVE = 0x808004, IMP_EVENT_OCD = 0x808005, + IMP_EVENT_DEACTIVATE = 0x808006, + IMP_EVENT_ACTIVATE = 0x808007, }; /** @@ -186,7 +188,7 @@ struct obd_import { * @{ */ struct ptlrpc_sec *imp_sec; - cfs_semaphore_t imp_sec_mutex; + cfs_mutex_t imp_sec_mutex; cfs_time_t imp_sec_expire; /** @} */ @@ -261,6 +263,7 @@ struct obd_import { imp_force_verify:1, /* force an immidiate ping */ imp_pingable:1, /* pingable */ imp_resend_replay:1, /* resend for replay */ + imp_no_pinger_recover:1,/* disable normal recovery, for test only. */ imp_force_reconnect:1; /* import must be reconnected instead of chouse new connection */ __u32 imp_connect_op; struct obd_connect_data imp_connect_data; @@ -312,16 +315,20 @@ static inline unsigned int at_timeout2est(unsigned int val) return (max((val << 2) / 5, 5U) - 4); } -static inline void at_init(struct adaptive_timeout *at, int val, int flags) { - memset(at, 0, sizeof(*at)); +static inline void at_reset(struct adaptive_timeout *at, int val) { at->at_current = val; at->at_worst_ever = val; at->at_worst_time = cfs_time_current_sec(); - at->at_flags = flags; - cfs_spin_lock_init(&at->at_lock); } +static inline void at_init(struct adaptive_timeout *at, int val, int flags) { + memset(at, 0, sizeof(*at)); + cfs_spin_lock_init(&at->at_lock); + at->at_flags = flags; + at_reset(at, val); +} +extern unsigned int at_min; static inline int at_get(struct adaptive_timeout *at) { - return at->at_current; + return (at->at_current > at_min) ? at->at_current : at_min; } int at_measured(struct adaptive_timeout *at, unsigned int val); int import_at_get_index(struct obd_import *imp, int portal);