1 /* -*- mode: c; c-basic-offset: 8; -*- 2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * 4 * dlmdomain.h 5 * 6 * Copyright (C) 2004 Oracle. All rights reserved. 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public 19 * License along with this program; if not, write to the 20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 * Boston, MA 021110-1307, USA. 22 * 23 */ 24 25 #ifndef DLMDOMAIN_H 26 #define DLMDOMAIN_H 27 28 extern spinlock_t dlm_domain_lock; 29 extern struct list_head dlm_domains; 30 31 static inline int dlm_joined(struct dlm_ctxt *dlm) 32 { 33 int ret = 0; 34 35 spin_lock(&dlm_domain_lock); 36 if (dlm->dlm_state == DLM_CTXT_JOINED) 37 ret = 1; 38 spin_unlock(&dlm_domain_lock); 39 40 return ret; 41 } 42 43 static inline int dlm_shutting_down(struct dlm_ctxt *dlm) 44 { 45 int ret = 0; 46 47 spin_lock(&dlm_domain_lock); 48 if (dlm->dlm_state == DLM_CTXT_IN_SHUTDOWN) 49 ret = 1; 50 spin_unlock(&dlm_domain_lock); 51 52 return ret; 53 } 54 55 void dlm_fire_domain_eviction_callbacks(struct dlm_ctxt *dlm, 56 int node_num); 57 58 #endif 59