Lines Matching refs:le

117 static void lru_insert(struct lru *lru, struct lru_entry *le)
123 atomic_set(&le->referenced, 0);
126 list_add_tail(&le->list, lru->cursor);
128 INIT_LIST_HEAD(&le->list);
129 lru->cursor = &le->list;
164 typedef bool (*iter_predicate)(struct lru_entry *le, void *context);
222 static void lru_remove(struct lru *lru, struct lru_entry *le)
224 lru_iter_invalidate(lru, le);
228 if (lru->cursor == &le->list)
230 list_del(&le->list);
238 static inline void lru_reference(struct lru_entry *le)
240 atomic_set(&le->referenced, 1);
255 typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context);
261 struct lru_entry *le;
271 le = container_of(h, struct lru_entry, list);
273 if (atomic_read(&le->referenced)) {
274 atomic_set(&le->referenced, 0);
277 switch (pred(le, context)) {
283 lru->cursor = le->list.next;
284 lru_remove(lru, le);
285 return le;
291 lru->cursor = le->list.next;
523 static inline struct dm_buffer *le_to_buffer(struct lru_entry *le)
525 return container_of(le, struct dm_buffer, lru);
530 struct lru_entry *le = list_entry(l, struct lru_entry, list);
532 if (!le)
535 return le_to_buffer(le);
667 static enum evict_result __evict_pred(struct lru_entry *le, void *context)
670 struct dm_buffer *b = le_to_buffer(le);
685 struct lru_entry *le;
688 le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep);
689 if (!le)
692 b = le_to_buffer(le);
737 struct lru_entry *le;
742 le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep);
743 if (!le)
746 b = le_to_buffer(le);
784 struct lru_entry *le, *first;
789 first = le = to_le(lru->cursor);
791 struct dm_buffer *b = le_to_buffer(le);
804 le = to_le(le->list.next);
805 } while (le != first);