~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/dlmconstants.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /******************************************************************************
  3 *******************************************************************************
  4 **
  5 **  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
  6 **  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.
  7 **
  8 **  This copyrighted material is made available to anyone wishing to use,
  9 **  modify, copy, or redistribute it subject to the terms and conditions
 10 **  of the GNU General Public License v.2.
 11 **
 12 *******************************************************************************
 13 ******************************************************************************/
 14 
 15 #ifndef __DLMCONSTANTS_DOT_H__
 16 #define __DLMCONSTANTS_DOT_H__
 17 
 18 /*
 19  * Constants used by DLM interface.
 20  */
 21 
 22 #define DLM_LOCKSPACE_LEN       64
 23 #define DLM_RESNAME_MAXLEN      64
 24 
 25 
 26 /*
 27  * Lock Modes
 28  */
 29 
 30 #define DLM_LOCK_IV             (-1)    /* invalid */
 31 #define DLM_LOCK_NL             0       /* null */
 32 #define DLM_LOCK_CR             1       /* concurrent read */
 33 #define DLM_LOCK_CW             2       /* concurrent write */
 34 #define DLM_LOCK_PR             3       /* protected read */
 35 #define DLM_LOCK_PW             4       /* protected write */
 36 #define DLM_LOCK_EX             5       /* exclusive */
 37 
 38 
 39 /*
 40  * Flags to dlm_lock
 41  *
 42  * DLM_LKF_NOQUEUE
 43  *
 44  * Do not queue the lock request on the wait queue if it cannot be granted
 45  * immediately.  If the lock cannot be granted because of this flag, DLM will
 46  * either return -EAGAIN from the dlm_lock call or will return 0 from
 47  * dlm_lock and -EAGAIN in the lock status block when the AST is executed.
 48  *
 49  * DLM_LKF_CANCEL
 50  *
 51  * Used to cancel a pending lock request or conversion.  A converting lock is
 52  * returned to its previously granted mode.
 53  *
 54  * DLM_LKF_CONVERT
 55  *
 56  * Indicates a lock conversion request.  For conversions the name and namelen
 57  * are ignored and the lock ID in the LKSB is used to identify the lock.
 58  *
 59  * DLM_LKF_VALBLK
 60  *
 61  * Requests DLM to return the current contents of the lock value block in the
 62  * lock status block.  When this flag is set in a lock conversion from PW or EX
 63  * modes, DLM assigns the value specified in the lock status block to the lock
 64  * value block of the lock resource.  The LVB is a DLM_LVB_LEN size array
 65  * containing application-specific information.
 66  *
 67  * DLM_LKF_QUECVT
 68  *
 69  * Force a conversion request to be queued, even if it is compatible with
 70  * the granted modes of other locks on the same resource.
 71  *
 72  * DLM_LKF_IVVALBLK
 73  *
 74  * Invalidate the lock value block.
 75  *
 76  * DLM_LKF_CONVDEADLK
 77  *
 78  * Allows the dlm to resolve conversion deadlocks internally by demoting the
 79  * granted mode of a converting lock to NL.  The DLM_SBF_DEMOTED flag is
 80  * returned for a conversion that's been effected by this.
 81  *
 82  * DLM_LKF_PERSISTENT
 83  *
 84  * Only relevant to locks originating in userspace.  A persistent lock will not
 85  * be removed if the process holding the lock exits.
 86  *
 87  * DLM_LKF_NODLCKWT
 88  *
 89  * Do not cancel the lock if it gets into conversion deadlock.
 90  *
 91  * DLM_LKF_NODLCKBLK
 92  *
 93  * net yet implemented
 94  *
 95  * DLM_LKF_EXPEDITE
 96  *
 97  * Used only with new requests for NL mode locks.  Tells the lock manager
 98  * to grant the lock, ignoring other locks in convert and wait queues.
 99  *
100  * DLM_LKF_NOQUEUEBAST
101  *
102  * Send blocking AST's before returning -EAGAIN to the caller.  It is only
103  * used along with the NOQUEUE flag.  Blocking AST's are not sent for failed
104  * NOQUEUE requests otherwise.
105  *
106  * DLM_LKF_HEADQUE
107  *
108  * Add a lock to the head of the convert or wait queue rather than the tail.
109  *
110  * DLM_LKF_NOORDER
111  *
112  * Disregard the standard grant order rules and grant a lock as soon as it
113  * is compatible with other granted locks.
114  *
115  * DLM_LKF_ORPHAN
116  *
117  * Acquire an orphan lock.
118  *
119  * DLM_LKF_ALTPR
120  *
121  * If the requested mode cannot be granted immediately, try to grant the lock
122  * in PR mode instead.  If this alternate mode is granted instead of the
123  * requested mode, DLM_SBF_ALTMODE is returned in the lksb.
124  *
125  * DLM_LKF_ALTCW
126  *
127  * The same as ALTPR, but the alternate mode is CW.
128  *
129  * DLM_LKF_FORCEUNLOCK
130  *
131  * Unlock the lock even if it is converting or waiting or has sublocks.
132  * Only really for use by the userland device.c code.
133  *
134  * DLM_LKF_TIMEOUT
135  *
136  * This value is deprecated and reserved. DO NOT USE!
137  *
138  */
139 
140 #define DLM_LKF_NOQUEUE         0x00000001
141 #define DLM_LKF_CANCEL          0x00000002
142 #define DLM_LKF_CONVERT         0x00000004
143 #define DLM_LKF_VALBLK          0x00000008
144 #define DLM_LKF_QUECVT          0x00000010
145 #define DLM_LKF_IVVALBLK        0x00000020
146 #define DLM_LKF_CONVDEADLK      0x00000040
147 #define DLM_LKF_PERSISTENT      0x00000080
148 #define DLM_LKF_NODLCKWT        0x00000100
149 #define DLM_LKF_NODLCKBLK       0x00000200
150 #define DLM_LKF_EXPEDITE        0x00000400
151 #define DLM_LKF_NOQUEUEBAST     0x00000800
152 #define DLM_LKF_HEADQUE         0x00001000
153 #define DLM_LKF_NOORDER         0x00002000
154 #define DLM_LKF_ORPHAN          0x00004000
155 #define DLM_LKF_ALTPR           0x00008000
156 #define DLM_LKF_ALTCW           0x00010000
157 #define DLM_LKF_FORCEUNLOCK     0x00020000
158 #define DLM_LKF_TIMEOUT         0x00040000
159 
160 /*
161  * Some return codes that are not in errno.h
162  */
163 
164 #define DLM_ECANCEL             0x10001
165 #define DLM_EUNLOCK             0x10002
166 
167 #endif  /* __DLMCONSTANTS_DOT_H__ */
168 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php