typedef int (*ldlm_completion_callback)(struct ldlm_lock *lock, int flags);
struct ldlm_lock {
- __u64 l_random;
+ __u64 l_random;
int l_refc;
struct ldlm_resource *l_resource;
struct ldlm_lock *l_parent;
struct list_head l_children;
struct list_head l_childof;
struct list_head l_res_link; /*position in one of three res lists*/
+ struct list_head l_inode_link; /* position in inode info list */
ldlm_mode_t l_req_mode;
ldlm_mode_t l_granted_mode;
ldlm_completion_callback l_completion_ast;
ldlm_blocking_callback l_blocking_ast;
- struct ptlrpc_connection *l_connection;
+ struct obd_export *l_export;
struct ptlrpc_client *l_client;
struct lustre_handle *l_connh;
__u32 l_flags;
#define LDLM_LOCK_PUT(lock) \
do { \
- LDLM_DEBUG(lock, "put"); \
+ /*LDLM_DEBUG(lock, "put");*/ \
ldlm_lock_put(lock); \
} while (0)
#define LDLM_LOCK_GET(lock) \
({ \
ldlm_lock_get(lock); \
- LDLM_DEBUG(lock, "get"); \
+ /*LDLM_DEBUG(lock, "get");*/ \
lock; \
})
void ldlm_lock_dump(struct ldlm_lock *lock);
/* ldlm_test.c */
-int ldlm_test(struct obd_device *device, struct ptlrpc_connection *conn);
+int ldlm_test(struct obd_device *device, struct lustre_handle *connh);
+int ldlm_regression_start(struct obd_device *obddev,
+ struct lustre_handle *connh, int count);
+int ldlm_regression_stop(void);
+
/* resource.c */
struct ldlm_namespace *ldlm_namespace_new(char *name, __u32 local);
#define IOC_LDLM_TEST _IOWR('f', 40, long)
#define IOC_LDLM_DUMP _IOWR('f', 41, long)
-#define IOC_LDLM_MAX_NR 41
+#define IOC_LDLM_REGRESS_START _IOWR('f', 42, long)
+#define IOC_LDLM_REGRESS_STOP _IOWR('f', 43, long)
+#define IOC_LDLM_MAX_NR 43
#endif