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