*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*/
extern int ldlm_srv_namespace_nr;
struct ldlm_namespace *ldlm_namespace_first_locked(enum ldlm_side);
/* ldlm_request.c */
-/* Cancel lru flag, it indicates we cancel aged locks. */
-enum ldlm_lru_flags {
- LDLM_LRU_FLAG_NO_WAIT = 0x1, /* Cancel locks w/o blocking (neither
- * sending nor waiting for any RPCs) */
- LDLM_LRU_FLAG_CLEANUP = 0x2, /* Used when clearing lru, tells
- * prepare_lru_list to set discard flag
- * on PR extent locks so we don't waste
- * time saving pages that will be
- * discarded momentarily */
-};
-
int ldlm_cancel_lru(struct ldlm_namespace *ns, int min,
enum ldlm_cancel_flags cancel_flags,
enum ldlm_lru_flags lru_flags);
#ifdef HAVE_SERVER_SUPPORT
int ldlm_reprocess_queue(struct ldlm_resource *res, struct list_head *queue,
struct list_head *work_list,
- enum ldlm_process_intention intention,
- struct ldlm_lock *hint);
+ enum ldlm_process_intention intention, __u64 hint);
int ldlm_handle_conflict_lock(struct ldlm_lock *lock, __u64 *flags,
struct list_head *rpc_list);
void ldlm_discard_bl_list(struct list_head *bl_list);
struct ldlm_lock_desc *ld,
struct list_head *cancels, int count,
enum ldlm_cancel_flags cancel_flags);
+int ldlm_bl_to_thread_ns(struct ldlm_namespace *ns);
int ldlm_bl_thread_wakeup(void);
void ldlm_handle_bl_callback(struct ldlm_namespace *ns,
struct list_head *queue,
struct list_head *work_list,
enum ldlm_process_intention intention,
- struct ldlm_lock *hint);
+ __u64 hint);
/* ldlm_extent.c */
int ldlm_process_extent_lock(struct ldlm_lock *lock, __u64 *flags,
enum ldlm_process_intention intention,
int ldlm_inodebits_alloc_lock(struct ldlm_lock *lock);
void ldlm_inodebits_add_lock(struct ldlm_resource *res, struct list_head *head,
- struct ldlm_lock *lock);
+ struct ldlm_lock *lock, bool tail);
void ldlm_inodebits_unlink_lock(struct ldlm_lock *lock);
/* ldlm_flock.c */