lock_list
INIT_LIST_HEAD(&conn->lock_list);
struct list_head lock_list;
struct list_head *lock_list)
list_add_tail(&lock->llist, lock_list);
LIST_HEAD(lock_list);
list_for_each_entry(cmp_lock, &lock_list, llist) {
smb_lock = smb2_lock_init(flock, cmd, flags, &lock_list);
list_for_each_entry_safe(smb_lock, tmp, &lock_list, llist) {
list_for_each_entry_safe(cmp_lock, tmp2, &conn->lock_list, clist) {
&work->conn->lock_list);
&fp->lock_list);
list_for_each_entry_safe(smb_lock, tmp, &lock_list, llist) {
list_for_each_entry_safe(smb_lock, tmp_lock, &fp->lock_list, flist) {
INIT_LIST_HEAD(&fp->lock_list);
struct list_head lock_list;
struct lock_list *parent;
struct lock_list *e;
struct lock_list *e;
static struct lock_list *alloc_list_entry(void)
struct lock_list *entry;
struct lock_list *element[MAX_CIRCULAR_QUEUE_SIZE];
static inline int __cq_enqueue(struct circular_queue *cq, struct lock_list *elem)
static inline struct lock_list * __cq_dequeue(struct circular_queue *cq)
struct lock_list * lock;
static inline void mark_lock_accessed(struct lock_list *lock)
static inline void visit_lock_entry(struct lock_list *lock,
struct lock_list *parent)
static inline unsigned long lock_accessed(struct lock_list *lock)
static inline struct lock_list *get_lock_parent(struct lock_list *child)
static inline int get_lock_depth(struct lock_list *child)
struct lock_list *parent;
static inline struct list_head *get_dep_list(struct lock_list *lock, int offset)
static inline void __bfs_init_root(struct lock_list *lock,
static inline void bfs_init_root(struct lock_list *lock,
static inline void bfs_init_rootb(struct lock_list *lock,
static inline struct lock_list *__bfs_next(struct lock_list *lock, int offset)
&lock->entry, struct lock_list, entry);
static enum bfs_result __bfs(struct lock_list *source_entry,
bool (*match)(struct lock_list *entry, void *data),
bool (*skip)(struct lock_list *entry, void *data),
struct lock_list **target_entry,
struct lock_list *lock = NULL;
struct lock_list *entry;
__bfs_forwards(struct lock_list *src_entry,
bool (*match)(struct lock_list *entry, void *data),
bool (*skip)(struct lock_list *entry, void *data),
struct lock_list **target_entry)
__bfs_backwards(struct lock_list *src_entry,
bool (*match)(struct lock_list *entry, void *data),
bool (*skip)(struct lock_list *entry, void *data),
struct lock_list **target_entry)
print_circular_bug_entry(struct lock_list *target, int depth)
struct lock_list *prt)
print_circular_bug_header(struct lock_list *entry, unsigned int depth,
static inline bool hlock_conflict(struct lock_list *entry, void *data)
static noinline void print_circular_bug(struct lock_list *this,
struct lock_list *target,
struct lock_list *parent;
struct lock_list *first_parent;
static bool noop_count(struct lock_list *entry, void *data)
static unsigned long __lockdep_count_forward_deps(struct lock_list *this)
struct lock_list *target_entry;
static struct lock_list list_entries[MAX_LOCKDEP_ENTRIES];
struct lock_list this;
static unsigned long __lockdep_count_backward_deps(struct lock_list *this)
struct lock_list *target_entry;
struct lock_list this;
check_path(struct held_lock *target, struct lock_list *src_entry,
bool (*match)(struct lock_list *entry, void *data),
bool (*skip)(struct lock_list *entry, void *data),
struct lock_list **target_entry)
struct lock_list *target_entry;
struct lock_list src_entry;
static inline bool usage_accumulate(struct lock_list *entry, void *mask)
static inline bool usage_match(struct lock_list *entry, void *mask)
static inline bool usage_skip(struct lock_list *entry, void *mask)
find_usage_forwards(struct lock_list *root, unsigned long usage_mask,
struct lock_list **target_entry)
find_usage_backwards(struct lock_list *root, unsigned long usage_mask,
struct lock_list **target_entry)
print_shortest_lock_dependencies(struct lock_list *leaf,
struct lock_list *root)
struct lock_list *entry = leaf;
print_shortest_lock_dependencies_backwards(struct lock_list *leaf,
struct lock_list *root)
struct lock_list *entry = leaf;
print_irq_lock_scenario(struct lock_list *safe_entry,
struct lock_list *unsafe_entry,
struct lock_list *prev_root,
struct lock_list *next_root,
struct lock_list *backwards_entry,
struct lock_list *forwards_entry,
struct lock_list *target_entry1;
struct lock_list *target_entry;
struct lock_list this, that;
static inline bool usage_skip(struct lock_list *entry, void *mask)
static inline bool hlock_equal(struct lock_list *entry, void *data)
struct lock_list *target_entry;
struct lock_list src_entry;
struct lock_list *entry;
struct lock_list *root, struct lock_list *other,
struct lock_list *entry = other;
struct lock_list *middle = NULL;
struct lock_list root;
struct lock_list *target_entry;
struct lock_list root;
struct lock_list *target_entry;
struct lock_list *entry;
struct lock_list *entry;