+++ /dev/null
-LDLM Request
-^^^^^^^^^^^^
-[[struct-ldlm-request]]
-
-The 'ldlm_request' structure describes the details of a lock request.
-
-----
-struct ldlm_request {
- __u32 lock_flags;
- __u32 lock_count;
- struct ldlm_lock_desc lock_desc;
- struct lustre_handle lock_handle[2];
-};
-----
-
-The 'lock_flags' field governs how the lock request is to be
-interpreted. The flags are:
-
-----
-#define LDLM_FL_LOCK_CHANGED 0x0000000000000001ULL // bit 0
-#define LDLM_FL_BLOCK_GRANTED 0x0000000000000002ULL // bit 1
-#define LDLM_FL_BLOCK_CONV 0x0000000000000004ULL // bit 2
-#define LDLM_FL_BLOCK_WAIT 0x0000000000000008ULL // bit 3
-#define LDLM_FL_AST_SENT 0x0000000000000020ULL // bit 5
-#define LDLM_FL_REPLAY 0x0000000000000100ULL // bit 8
-#define LDLM_FL_INTENT_ONLY 0x0000000000000200ULL // bit 9
-#define LDLM_FL_HAS_INTENT 0x0000000000001000ULL // bit 12
-#define LDLM_FL_FLOCK_DEADLOCK 0x0000000000008000ULL // bit 15
-#define LDLM_FL_DISCARD_DATA 0x0000000000010000ULL // bit 16
-#define LDLM_FL_NO_TIMEOUT 0x0000000000020000ULL // bit 17
-#define LDLM_FL_BLOCK_NOWAIT 0x0000000000040000ULL // bit 18
-#define LDLM_FL_TEST_LOCK 0x0000000000080000ULL // bit 19
-#define LDLM_FL_CANCEL_ON_BLOCK 0x0000000000800000ULL // bit 23
-#define LDLM_FL_DENY_ON_CONTENTION 0x0000000040000000ULL // bit 30
-#define LDLM_FL_AST_DISCARD_DATA 0x0000000080000000ULL // bit 31
-#define LDLM_FL_FAIL_LOC 0x0000000100000000ULL // bit 32
-#define LDLM_FL_SKIPPED 0x0000000200000000ULL // bit 33
-#define LDLM_FL_CBPENDING 0x0000000400000000ULL // bit 34
-#define LDLM_FL_WAIT_NOREPROC 0x0000000800000000ULL // bit 35
-#define LDLM_FL_CANCEL 0x0000001000000000ULL // bit 36
-#define LDLM_FL_LOCAL_ONLY 0x0000002000000000ULL // bit 37
-#define LDLM_FL_FAILED 0x0000004000000000ULL // bit 38
-#define LDLM_FL_CANCELING 0x0000008000000000ULL // bit 39
-#define LDLM_FL_LOCAL 0x0000010000000000ULL // bit 40
-#define LDLM_FL_LVB_READY 0x0000020000000000ULL // bit 41
-#define LDLM_FL_KMS_IGNORE 0x0000040000000000ULL // bit 42
-#define LDLM_FL_CP_REQD 0x0000080000000000ULL // bit 43
-#define LDLM_FL_CLEANED 0x0000100000000000ULL // bit 44
-#define LDLM_FL_ATOMIC_CB 0x0000200000000000ULL // bit 45
-#define LDLM_FL_BL_AST 0x0000400000000000ULL // bit 46
-#define LDLM_FL_BL_DONE 0x0000800000000000ULL // bit 47
-#define LDLM_FL_NO_LRU 0x0001000000000000ULL // bit 48
-#define LDLM_FL_FAIL_NOTIFIED 0x0002000000000000ULL // bit 49
-#define LDLM_FL_DESTROYED 0x0004000000000000ULL // bit 50
-#define LDLM_FL_SERVER_LOCK 0x0008000000000000ULL // bit 51
-#define LDLM_FL_RES_LOCKED 0x0010000000000000ULL // bit 52
-#define LDLM_FL_WAITED 0x0020000000000000ULL // bit 53
-#define LDLM_FL_NS_SRV 0x0040000000000000ULL // bit 54
-#define LDLM_FL_EXCL 0x0080000000000000ULL // bit 55
-----
-
-The 'lock_count' field represents how many requests are queued on this
-resource.
-
-The 'lock_desc' field holds the lock descriptor as described in
-<<struct-ldlm-lock-desc>.
-
-The 'lock_handle' array's first element holds the handle for the lock
-manager (see the description of <<struct-lustre-handle>>) involved in
-the operation. There is only one lock manager involved in any given
-RPC. The second handle is set to zero except in the rare case that
-there is also an early lock cancellation. The latter case will be
-discussed elsewhere.
-