1f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/* -*- buffer-read-only: t -*- vi: set ro: 2f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 3f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * DO NOT EDIT THIS FILE (lustre_dlm_flags.h) 4f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 5f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * It has been AutoGen-ed 6f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * From the definitions lustre_dlm_flags.def 7f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * and the template file lustre_dlm_flags.tpl 8f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 9f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * lustre is free software: you can redistribute it and/or modify it 10f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * under the terms of the GNU General Public License as published by the 11f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Free Software Foundation, either version 3 of the License, or 12f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * (at your option) any later version. 13f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 14f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * lustre is distributed in the hope that it will be useful, but 15f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * WITHOUT ANY WARRANTY; without even the implied warranty of 16f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * See the GNU General Public License for more details. 18f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 19f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * You should have received a copy of the GNU General Public License along 20f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * with this program. If not, see <http://www.gnu.org/licenses/>. 21f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb */ 22f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 23f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * \file lustre_dlm_flags.h 24f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * The flags and collections of flags (masks) for \see struct ldlm_lock. 25f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * This file is derived from flag definitions in lustre_dlm_flags.def. 26f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * The format is defined in the lustre_dlm_flags.tpl template file. 27f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 28f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * \addtogroup LDLM Lustre Distributed Lock Manager 29f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * @{ 30f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 31f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * \name flags 32f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * The flags and collections of flags (masks) for \see struct ldlm_lock. 33f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * @{ 34f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb */ 35f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#ifndef LDLM_ALL_FLAGS_MASK 36f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 37f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "all_flags" bits */ 3869342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define LDLM_FL_ALL_FLAGS_MASK 0x00FFFFFFC08F932FULL 39f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 40f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "ast" bits */ 4169342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define LDLM_FL_AST_MASK 0x0000000080008000ULL 42f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 43f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "blocked" bits */ 44f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BLOCKED_MASK 0x000000000000000EULL 45f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 46f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "gone" bits */ 47f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_GONE_MASK 0x0006004000000000ULL 48f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 49f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "hide_lock" bits */ 50f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_HIDE_LOCK_MASK 0x0000206400000000ULL 51f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 52f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "inherit" bits */ 53f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_INHERIT_MASK 0x0000000000800000ULL 54f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 55f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "local_only" bits */ 56d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong#define LDLM_FL_LOCAL_ONLY_MASK 0x00FFFFFF00000000ULL 57f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 58f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** l_flags bits marked as "on_wire" bits */ 5969342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define LDLM_FL_ON_WIRE_MASK 0x00000000C08F932FULL 60f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 61f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** extent, mode, or resource changed */ 62f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_LOCK_CHANGED 0x0000000000000001ULL // bit 0 63f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_lock_changed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 0) 64f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_lock_changed(_l) LDLM_SET_FLAG(( _l), 1ULL << 0) 65f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_lock_changed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 0) 66f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 67f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 68f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Server placed lock on granted list, or a recovering client wants the 69f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * lock added to the granted list, no questions asked. */ 70f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BLOCK_GRANTED 0x0000000000000002ULL // bit 1 71f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_block_granted(_l) LDLM_TEST_FLAG(( _l), 1ULL << 1) 72f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_block_granted(_l) LDLM_SET_FLAG(( _l), 1ULL << 1) 73f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_block_granted(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 1) 74f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 75f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 76f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Server placed lock on conv list, or a recovering client wants the lock 77f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * added to the conv list, no questions asked. */ 78f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BLOCK_CONV 0x0000000000000004ULL // bit 2 79f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_block_conv(_l) LDLM_TEST_FLAG(( _l), 1ULL << 2) 80f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_block_conv(_l) LDLM_SET_FLAG(( _l), 1ULL << 2) 81f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_block_conv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 2) 82f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 83f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 84f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Server placed lock on wait list, or a recovering client wants the lock 85f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * added to the wait list, no questions asked. */ 86f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BLOCK_WAIT 0x0000000000000008ULL // bit 3 87f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_block_wait(_l) LDLM_TEST_FLAG(( _l), 1ULL << 3) 88f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_block_wait(_l) LDLM_SET_FLAG(( _l), 1ULL << 3) 89f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_block_wait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 3) 90f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 91f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** blocking or cancel packet was queued for sending. */ 92f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_AST_SENT 0x0000000000000020ULL // bit 5 93f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_ast_sent(_l) LDLM_TEST_FLAG(( _l), 1ULL << 5) 94f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_ast_sent(_l) LDLM_SET_FLAG(( _l), 1ULL << 5) 95f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_ast_sent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 5) 96f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 97f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 98f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Lock is being replayed. This could probably be implied by the fact that 99f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * one of BLOCK_{GRANTED,CONV,WAIT} is set, but that is pretty dangerous. */ 100f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_REPLAY 0x0000000000000100ULL // bit 8 101f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_replay(_l) LDLM_TEST_FLAG(( _l), 1ULL << 8) 102f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_replay(_l) LDLM_SET_FLAG(( _l), 1ULL << 8) 103f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_replay(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 8) 104f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 105f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** Don't grant lock, just do intent. */ 106f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_INTENT_ONLY 0x0000000000000200ULL // bit 9 107f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_intent_only(_l) LDLM_TEST_FLAG(( _l), 1ULL << 9) 108f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_intent_only(_l) LDLM_SET_FLAG(( _l), 1ULL << 9) 109f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_intent_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 9) 110f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 111f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** lock request has intent */ 112f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_HAS_INTENT 0x0000000000001000ULL // bit 12 113f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_has_intent(_l) LDLM_TEST_FLAG(( _l), 1ULL << 12) 114f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_has_intent(_l) LDLM_SET_FLAG(( _l), 1ULL << 12) 115f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_has_intent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 12) 116f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 11769342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh/** flock deadlock detected */ 11869342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define LDLM_FL_FLOCK_DEADLOCK 0x0000000000008000ULL /* bit 15 */ 11969342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define ldlm_is_flock_deadlock(_l) LDLM_TEST_FLAG((_l), 1ULL << 15) 12069342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define ldlm_set_flock_deadlock(_l) LDLM_SET_FLAG((_l), 1ULL << 15) 12169342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh#define ldlm_clear_flock_deadlock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 15) 12269342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh 123f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** discard (no writeback) on cancel */ 124f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_DISCARD_DATA 0x0000000000010000ULL // bit 16 125f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_discard_data(_l) LDLM_TEST_FLAG(( _l), 1ULL << 16) 126f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_discard_data(_l) LDLM_SET_FLAG(( _l), 1ULL << 16) 127f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 16) 128f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 129f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** Blocked by group lock - wait indefinitely */ 130f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_NO_TIMEOUT 0x0000000000020000ULL // bit 17 131f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_no_timeout(_l) LDLM_TEST_FLAG(( _l), 1ULL << 17) 132f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_no_timeout(_l) LDLM_SET_FLAG(( _l), 1ULL << 17) 133f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_no_timeout(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 17) 134f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 135f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 136f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Server told not to wait if blocked. For AGL, OST will not send glimpse 137f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * callback. */ 138f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BLOCK_NOWAIT 0x0000000000040000ULL // bit 18 139f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_block_nowait(_l) LDLM_TEST_FLAG(( _l), 1ULL << 18) 140f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_block_nowait(_l) LDLM_SET_FLAG(( _l), 1ULL << 18) 141f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_block_nowait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 18) 142f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 143f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** return blocking lock */ 144f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_TEST_LOCK 0x0000000000080000ULL // bit 19 145f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_test_lock(_l) LDLM_TEST_FLAG(( _l), 1ULL << 19) 146f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_test_lock(_l) LDLM_SET_FLAG(( _l), 1ULL << 19) 147f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_test_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 19) 148f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 149f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 15017891183d08038655d60c1f3c894a8502cd5d7c1Masanari Iida * Immediately cancel such locks when they block some other locks. Send 151f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * cancel notification to original lock holder, but expect no reply. This 152f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * is for clients (like liblustre) that cannot be expected to reliably 153f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * response to blocking AST. */ 154f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CANCEL_ON_BLOCK 0x0000000000800000ULL // bit 23 155f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_cancel_on_block(_l) LDLM_TEST_FLAG(( _l), 1ULL << 23) 156f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_cancel_on_block(_l) LDLM_SET_FLAG(( _l), 1ULL << 23) 157f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_cancel_on_block(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 23) 158f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 159f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 160f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * measure lock contention and return -EUSERS if locking contention is high */ 161f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_DENY_ON_CONTENTION 0x0000000040000000ULL // bit 30 162f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_deny_on_contention(_l) LDLM_TEST_FLAG(( _l), 1ULL << 30) 163f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_deny_on_contention(_l) LDLM_SET_FLAG(( _l), 1ULL << 30) 164f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_deny_on_contention(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 30) 165f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 166f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 167f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * These are flags that are mapped into the flags and ASTs of blocking 168f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * locks Add FL_DISCARD to blocking ASTs */ 169f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_AST_DISCARD_DATA 0x0000000080000000ULL // bit 31 170f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_ast_discard_data(_l) LDLM_TEST_FLAG(( _l), 1ULL << 31) 171f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_ast_discard_data(_l) LDLM_SET_FLAG(( _l), 1ULL << 31) 172f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_ast_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 31) 173f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 174f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 175f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Used for marking lock as a target for -EINTR while cp_ast sleep emulation 176f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * + race with upcoming bl_ast. */ 177f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_FAIL_LOC 0x0000000100000000ULL // bit 32 178f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_fail_loc(_l) LDLM_TEST_FLAG(( _l), 1ULL << 32) 179f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_fail_loc(_l) LDLM_SET_FLAG(( _l), 1ULL << 32) 180f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_fail_loc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 32) 181f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 182f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 183f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Used while processing the unused list to know that we have already 184f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * handled this lock and decided to skip it. */ 185f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_SKIPPED 0x0000000200000000ULL // bit 33 186f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_skipped(_l) LDLM_TEST_FLAG(( _l), 1ULL << 33) 187f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_skipped(_l) LDLM_SET_FLAG(( _l), 1ULL << 33) 188f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_skipped(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 33) 189f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 190f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** this lock is being destroyed */ 191f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CBPENDING 0x0000000400000000ULL // bit 34 192f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_cbpending(_l) LDLM_TEST_FLAG(( _l), 1ULL << 34) 193f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_cbpending(_l) LDLM_SET_FLAG(( _l), 1ULL << 34) 194f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_cbpending(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 34) 195f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 196f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** not a real flag, not saved in lock */ 197f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_WAIT_NOREPROC 0x0000000800000000ULL // bit 35 198f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_wait_noreproc(_l) LDLM_TEST_FLAG(( _l), 1ULL << 35) 199f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_wait_noreproc(_l) LDLM_SET_FLAG(( _l), 1ULL << 35) 200f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_wait_noreproc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 35) 201f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 202f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** cancellation callback already run */ 203f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CANCEL 0x0000001000000000ULL // bit 36 204f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_cancel(_l) LDLM_TEST_FLAG(( _l), 1ULL << 36) 205f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_cancel(_l) LDLM_SET_FLAG(( _l), 1ULL << 36) 206f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_cancel(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 36) 207f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 208f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** whatever it might mean */ 209f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_LOCAL_ONLY 0x0000002000000000ULL // bit 37 210f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_local_only(_l) LDLM_TEST_FLAG(( _l), 1ULL << 37) 211f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_local_only(_l) LDLM_SET_FLAG(( _l), 1ULL << 37) 212f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_local_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 37) 213f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 214f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** don't run the cancel callback under ldlm_cli_cancel_unused */ 215f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_FAILED 0x0000004000000000ULL // bit 38 216f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_failed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 38) 217f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_failed(_l) LDLM_SET_FLAG(( _l), 1ULL << 38) 218f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_failed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 38) 219f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 220f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** lock cancel has already been sent */ 221f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CANCELING 0x0000008000000000ULL // bit 39 222f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_canceling(_l) LDLM_TEST_FLAG(( _l), 1ULL << 39) 223f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_canceling(_l) LDLM_SET_FLAG(( _l), 1ULL << 39) 224f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_canceling(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 39) 225f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 226f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** local lock (ie, no srv/cli split) */ 227f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_LOCAL 0x0000010000000000ULL // bit 40 228f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_local(_l) LDLM_TEST_FLAG(( _l), 1ULL << 40) 229f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_local(_l) LDLM_SET_FLAG(( _l), 1ULL << 40) 230f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_local(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 40) 231f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 232f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 233f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * XXX FIXME: This is being added to b_size as a low-risk fix to the 234f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * fact that the LVB filling happens _after_ the lock has been granted, 235f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * so another thread can match it before the LVB has been updated. As a 236f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * dirty hack, we set LDLM_FL_LVB_READY only after we've done the LVB poop. 237f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * this is only needed on LOV/OSC now, where LVB is actually used and 238f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * callers must set it in input flags. 239f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 240f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * The proper fix is to do the granting inside of the completion AST, 241f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * which can be replaced with a LVB-aware wrapping function for OSC locks. 242f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * That change is pretty high-risk, though, and would need a lot more 243f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * testing. */ 244f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_LVB_READY 0x0000020000000000ULL // bit 41 245f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_lvb_ready(_l) LDLM_TEST_FLAG(( _l), 1ULL << 41) 246f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_lvb_ready(_l) LDLM_SET_FLAG(( _l), 1ULL << 41) 247f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_lvb_ready(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 41) 248f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 249f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 250f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * A lock contributes to the known minimum size (KMS) calculation until it 25117891183d08038655d60c1f3c894a8502cd5d7c1Masanari Iida * has finished the part of its cancellation that performs write back on its 252f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * dirty pages. It can remain on the granted list during this whole time. 253f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Threads racing to update the KMS after performing their writeback need 254f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * to know to exclude each other's locks from the calculation as they walk 255f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * the granted list. */ 256f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_KMS_IGNORE 0x0000040000000000ULL // bit 42 257f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_kms_ignore(_l) LDLM_TEST_FLAG(( _l), 1ULL << 42) 258f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_kms_ignore(_l) LDLM_SET_FLAG(( _l), 1ULL << 42) 259f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_kms_ignore(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 42) 260f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 261f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** completion AST to be executed */ 262f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CP_REQD 0x0000080000000000ULL // bit 43 263f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_cp_reqd(_l) LDLM_TEST_FLAG(( _l), 1ULL << 43) 264f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_cp_reqd(_l) LDLM_SET_FLAG(( _l), 1ULL << 43) 265f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_cp_reqd(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 43) 266f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 267f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** cleanup_resource has already handled the lock */ 268f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_CLEANED 0x0000100000000000ULL // bit 44 269f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_cleaned(_l) LDLM_TEST_FLAG(( _l), 1ULL << 44) 270f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_cleaned(_l) LDLM_SET_FLAG(( _l), 1ULL << 44) 271f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_cleaned(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 44) 272f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 273f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 274f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * optimization hint: LDLM can run blocking callback from current context 275f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * w/o involving separate thread. in order to decrease cs rate */ 276f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_ATOMIC_CB 0x0000200000000000ULL // bit 45 277f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_atomic_cb(_l) LDLM_TEST_FLAG(( _l), 1ULL << 45) 278f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_atomic_cb(_l) LDLM_SET_FLAG(( _l), 1ULL << 45) 279f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_atomic_cb(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 45) 280f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 281f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 282f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * It may happen that a client initiates two operations, e.g. unlink and 283f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * mkdir, such that the server sends a blocking AST for conflicting locks 284f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * to this client for the first operation, whereas the second operation 285f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * has canceled this lock and is waiting for rpc_lock which is taken by 286f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * the first operation. LDLM_FL_BL_AST is set by ldlm_callback_handler() in 287f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * the lock to prevent the Early Lock Cancel (ELC) code from cancelling it. 288f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 289f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * LDLM_FL_BL_DONE is to be set by ldlm_cancel_callback() when lock cache is 290f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * dropped to let ldlm_callback_handler() return EINVAL to the server. It 291f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * is used when ELC RPC is already prepared and is waiting for rpc_lock, 292f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * too late to send a separate CANCEL RPC. */ 293f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BL_AST 0x0000400000000000ULL // bit 46 294f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_bl_ast(_l) LDLM_TEST_FLAG(( _l), 1ULL << 46) 295f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_bl_ast(_l) LDLM_SET_FLAG(( _l), 1ULL << 46) 296f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_bl_ast(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 46) 297f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 298f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** whatever it might mean */ 299f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_BL_DONE 0x0000800000000000ULL // bit 47 300f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_bl_done(_l) LDLM_TEST_FLAG(( _l), 1ULL << 47) 301f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_bl_done(_l) LDLM_SET_FLAG(( _l), 1ULL << 47) 302f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_bl_done(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 47) 303f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 304f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 305f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Don't put lock into the LRU list, so that it is not canceled due 306f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * to aging. Used by MGC locks, they are cancelled only at unmount or 307f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * by callback. */ 308f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_NO_LRU 0x0001000000000000ULL // bit 48 309f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_no_lru(_l) LDLM_TEST_FLAG(( _l), 1ULL << 48) 310f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_no_lru(_l) LDLM_SET_FLAG(( _l), 1ULL << 48) 311f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_no_lru(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 48) 312f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 313f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 314f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Set for locks that failed and where the server has been notified. 315f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 316f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Protected by lock and resource locks. */ 317f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_FAIL_NOTIFIED 0x0002000000000000ULL // bit 49 318f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_fail_notified(_l) LDLM_TEST_FLAG(( _l), 1ULL << 49) 319f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_fail_notified(_l) LDLM_SET_FLAG(( _l), 1ULL << 49) 320f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_fail_notified(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 49) 321f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 322f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 323f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Set for locks that were removed from class hash table and will 324f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * be destroyed when last reference to them is released. Set by 325f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * ldlm_lock_destroy_internal(). 326f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 327f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Protected by lock and resource locks. */ 328f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_DESTROYED 0x0004000000000000ULL // bit 50 329f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_destroyed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 50) 330f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_destroyed(_l) LDLM_SET_FLAG(( _l), 1ULL << 50) 331f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_destroyed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 50) 332f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 333f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** flag whether this is a server namespace lock */ 334f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_SERVER_LOCK 0x0008000000000000ULL // bit 51 335f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_server_lock(_l) LDLM_TEST_FLAG(( _l), 1ULL << 51) 336f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_server_lock(_l) LDLM_SET_FLAG(( _l), 1ULL << 51) 337f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_server_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 51) 338f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 339f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 340f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * It's set in lock_res_and_lock() and unset in unlock_res_and_lock(). 341f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 342f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * NB: compared with check_res_locked(), checking this bit is cheaper. 343f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Also, spin_is_locked() is deprecated for kernel code; one reason is 344f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * because it works only for SMP so user needs to add extra macros like 345f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * LASSERT_SPIN_LOCKED for uniprocessor kernels. */ 346f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_RES_LOCKED 0x0010000000000000ULL // bit 52 347f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_res_locked(_l) LDLM_TEST_FLAG(( _l), 1ULL << 52) 348f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_res_locked(_l) LDLM_SET_FLAG(( _l), 1ULL << 52) 349f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_res_locked(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 52) 350f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 351f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** 352f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * It's set once we call ldlm_add_waiting_lock_res_locked() to start the 353f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * lock-timeout timer and it will never be reset. 354f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * 355f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb * Protected by lock and resource locks. */ 356f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_WAITED 0x0020000000000000ULL // bit 53 357f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_waited(_l) LDLM_TEST_FLAG(( _l), 1ULL << 53) 358f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_waited(_l) LDLM_SET_FLAG(( _l), 1ULL << 53) 359f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_waited(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 53) 360f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 361f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** Flag whether this is a server namespace lock. */ 362f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_FL_NS_SRV 0x0040000000000000ULL // bit 54 363f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_is_ns_srv(_l) LDLM_TEST_FLAG(( _l), 1ULL << 54) 364f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_set_ns_srv(_l) LDLM_SET_FLAG(( _l), 1ULL << 54) 365f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define ldlm_clear_ns_srv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 54) 366f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 367d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong/** Flag whether this lock can be reused. Used by exclusive open. */ 368d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong#define LDLM_FL_EXCL 0x0080000000000000ULL /* bit 55 */ 369d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong#define ldlm_is_excl(_l) LDLM_TEST_FLAG((_l), 1ULL << 55) 370d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong#define ldlm_set_excl(_l) LDLM_SET_FLAG((_l), 1ULL << 55) 371d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong#define ldlm_clear_excl(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 55) 372d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiong 373f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** test for ldlm_lock flag bit set */ 374f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_TEST_FLAG(_l, _b) (((_l)->l_flags & (_b)) != 0) 375f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 376f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** set a ldlm_lock flag bit */ 377f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_SET_FLAG(_l, _b) (((_l)->l_flags |= (_b)) 378f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 379f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** clear a ldlm_lock flag bit */ 380f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_CLEAR_FLAG(_l, _b) (((_l)->l_flags &= ~(_b)) 381f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 382f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** Mask of flags inherited from parent lock when doing intents. */ 383f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_INHERIT_FLAGS LDLM_FL_INHERIT_MASK 384f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 385f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** Mask of Flags sent in AST lock_flags to map into the receiving lock. */ 386f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#define LDLM_AST_FLAGS LDLM_FL_AST_MASK 387f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 388f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** @} subgroup */ 389f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb/** @} group */ 390f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#ifdef WIRESHARK_COMPILE 391f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_lock_changed = -1; 392f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_block_granted = -1; 393f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_block_conv = -1; 394f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_block_wait = -1; 395f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_ast_sent = -1; 396f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_replay = -1; 397f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_intent_only = -1; 398f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_has_intent = -1; 39969342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulyshstatic int hf_lustre_ldlm_fl_flock_deadlock = -1; 400f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_discard_data = -1; 401f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_no_timeout = -1; 402f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_block_nowait = -1; 403f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_test_lock = -1; 404f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_cancel_on_block = -1; 405f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_deny_on_contention = -1; 406f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_ast_discard_data = -1; 407f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_fail_loc = -1; 408f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_skipped = -1; 409f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_cbpending = -1; 410f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_wait_noreproc = -1; 411f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_cancel = -1; 412f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_local_only = -1; 413f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_failed = -1; 414f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_canceling = -1; 415f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_local = -1; 416f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_lvb_ready = -1; 417f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_kms_ignore = -1; 418f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_cp_reqd = -1; 419f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_cleaned = -1; 420f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_atomic_cb = -1; 421f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_bl_ast = -1; 422f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_bl_done = -1; 423f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_no_lru = -1; 424f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_fail_notified = -1; 425f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_destroyed = -1; 426f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_server_lock = -1; 427f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_res_locked = -1; 428f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_waited = -1; 429f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbstatic int hf_lustre_ldlm_fl_ns_srv = -1; 430d3a8a4e2d5e42e80625d734bb2bc5f71ecd9ffc1Jinshan Xiongstatic int hf_lustre_ldlm_fl_excl = -1; 431f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb 432f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korbconst value_string lustre_ldlm_flags_vals[] = { 433d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_LOCK_CHANGED, "LDLM_FL_LOCK_CHANGED"}, 434d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BLOCK_GRANTED, "LDLM_FL_BLOCK_GRANTED"}, 435d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BLOCK_CONV, "LDLM_FL_BLOCK_CONV"}, 436d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BLOCK_WAIT, "LDLM_FL_BLOCK_WAIT"}, 437d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_AST_SENT, "LDLM_FL_AST_SENT"}, 438d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_REPLAY, "LDLM_FL_REPLAY"}, 439d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_INTENT_ONLY, "LDLM_FL_INTENT_ONLY"}, 440d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_HAS_INTENT, "LDLM_FL_HAS_INTENT"}, 44169342b7884d6ea1ec97c0a99fe0524a380783e83Andriy Skulysh {LDLM_FL_FLOCK_DEADLOCK, "LDLM_FL_FLOCK_DEADLOCK"}, 442d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_DISCARD_DATA, "LDLM_FL_DISCARD_DATA"}, 443d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_NO_TIMEOUT, "LDLM_FL_NO_TIMEOUT"}, 444d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BLOCK_NOWAIT, "LDLM_FL_BLOCK_NOWAIT"}, 445d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_TEST_LOCK, "LDLM_FL_TEST_LOCK"}, 446d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CANCEL_ON_BLOCK, "LDLM_FL_CANCEL_ON_BLOCK"}, 447d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_DENY_ON_CONTENTION, "LDLM_FL_DENY_ON_CONTENTION"}, 448d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_AST_DISCARD_DATA, "LDLM_FL_AST_DISCARD_DATA"}, 449d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_FAIL_LOC, "LDLM_FL_FAIL_LOC"}, 450d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_SKIPPED, "LDLM_FL_SKIPPED"}, 451d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CBPENDING, "LDLM_FL_CBPENDING"}, 452d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_WAIT_NOREPROC, "LDLM_FL_WAIT_NOREPROC"}, 453d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CANCEL, "LDLM_FL_CANCEL"}, 454d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_LOCAL_ONLY, "LDLM_FL_LOCAL_ONLY"}, 455d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_FAILED, "LDLM_FL_FAILED"}, 456d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CANCELING, "LDLM_FL_CANCELING"}, 457d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_LOCAL, "LDLM_FL_LOCAL"}, 458d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_LVB_READY, "LDLM_FL_LVB_READY"}, 459d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_KMS_IGNORE, "LDLM_FL_KMS_IGNORE"}, 460d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CP_REQD, "LDLM_FL_CP_REQD"}, 461d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_CLEANED, "LDLM_FL_CLEANED"}, 462d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_ATOMIC_CB, "LDLM_FL_ATOMIC_CB"}, 463d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BL_AST, "LDLM_FL_BL_AST"}, 464d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_BL_DONE, "LDLM_FL_BL_DONE"}, 465d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_NO_LRU, "LDLM_FL_NO_LRU"}, 466d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_FAIL_NOTIFIED, "LDLM_FL_FAIL_NOTIFIED"}, 467d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_DESTROYED, "LDLM_FL_DESTROYED"}, 468d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_SERVER_LOCK, "LDLM_FL_SERVER_LOCK"}, 469d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_RES_LOCKED, "LDLM_FL_RES_LOCKED"}, 470d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_WAITED, "LDLM_FL_WAITED"}, 471d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_NS_SRV, "LDLM_FL_NS_SRV"}, 472d298b5377d415f001bcba914610417e3396d6d6cPeng Tao {LDLM_FL_EXCL, "LDLM_FL_EXCL"}, 473d298b5377d415f001bcba914610417e3396d6d6cPeng Tao { 0, NULL } 474f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb}; 475f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#endif /* WIRESHARK_COMPILE */ 476f2145eae3d4d7c93fcbd7013bbf31db76bdd0ad4Bruce Korb#endif /* LDLM_ALL_FLAGS_MASK */ 477