1 The Lustre Distributed Lock Manager
2 -----------------------------------
5 The discussion of the LDLM is deferred for now. We'll get into it soon
44 struct ldlm_flock_wire {
57 struct ldlm_inodebits {
67 struct ldlm_extent l_extent;
68 struct ldlm_flock_wire l_flock;
69 struct ldlm_inodebits l_inodebits;
70 } ldlm_wire_policy_data_t;
77 struct ldlm_resource_desc {
79 __u32 lr_padding; /* also fix lustre_swab_ldlm_resource_desc */
80 struct ldlm_res_id lr_name;
84 The 'ldlm_type_t' is given by one of these values:
98 struct ldlm_lock_desc {
99 struct ldlm_resource_desc l_resource;
100 ldlm_mode_t l_req_mode;
101 ldlm_mode_t l_granted_mode;
102 ldlm_wire_policy_data_t l_policy_data;
110 #define LDLM_LOCKREQ_HANDLES 2
111 struct ldlm_request {
114 struct ldlm_lock_desc lock_desc;
115 struct lustre_handle lock_handle[LDLM_LOCKREQ_HANDLES];
125 __u32 lock_padding; /* also fix lustre_swab_ldlm_reply */
126 struct ldlm_lock_desc lock_desc;
127 struct lustre_handle lock_handle;
128 __u64 lock_policy_res1;
129 __u64 lock_policy_res2;
136 A lock value block is part of reply messages from servers when an
137 LDLM_ENQUEUE command has been issued. There are two varieties. Which
138 is chosen depends on the target.