Lines Matching refs:lru
12 // 3. lru spinlock
193 /// * Free. The page is None. The `lru` element is not queued.
194 /// * Available. The page is Some. The `lru` element is queued to the shrinker's lru.
195 /// * Used. The page is Some. The `lru` element is not queued.
200 lru: bindings::list_head,
246 /// Add this page to the lru list, if not already in the list.
253 let lru_ptr = unsafe { &raw mut (*me).lru };
254 // SAFETY: The lru pointer is valid, and we're not using it with any other lru list.
258 /// Remove this page from the lru list, if it is in the list.
265 let lru_ptr = unsafe { &raw mut (*me).lru };
266 // SAFETY: The lru pointer is valid, and we're not using it with any other lru list.
320 let lru = &raw mut (*info).lru;
321 (&raw mut (*lru).next).write(lru);
322 (&raw mut (*lru).prev).write(lru);
368 // Since we're going to use the page, we should remove it from the lru list so that
638 // removed them from the lru list.
667 // SAFETY: Accessing the lru list is okay. Just an FFI call.
682 // SAFETY: Accessing the lru list is okay. Just an FFI call.
701 lru: *mut bindings::list_lru_one,
704 // Fields that should survive after unlocking the lru lock.
736 // We can't lock it normally here, since we hold the lru lock.
742 // SAFETY: The item is in this lru list, so it's okay to remove it.
743 unsafe { bindings::list_lru_isolate(lru, item) };
761 // SAFETY: The lru lock is locked when this method is called.
762 unsafe { bindings::spin_unlock(&raw mut (*lru).lock) };