Te struktury są przechowywane jak wspomniano w pamięci, w pewnej ilości list, która w której - o tym decyduje funkcja mieszająca. Obsługa tych list mieszających odbywa się m.in. za pomocą poniższych funkcji:
Chcąc zanalizować problem bardziej wnikliwie, możemy powiedzieć, że ta pamięć podręczna pozycji katalogów składa się z dwóch rodzajów struktur danych:
Pamięć podręczna pozycji katalogów działa także jako kontroler
pamięci podręcznej i-węzłów. I-węzły, znajdujące się w pamięci jądra
i związane z nieuzywanymi pozycjami katalogu, nie są wyrzucane, ponieważ
pamięć podręczna pozycji katalogów cały czas ich używa, a więc ich pola
i_count mają wartość niezerową. Tak więc obiekty i-węzłów są
przechowywane w pamięci RAM i można z nich szybko skorzystać za pomocą
odpowiednich pozycji katalogów.
Wszystkie ,,nie używane'' pozycje katalogów znajdują się na
dwustronnie połączonej liście Last Recently Used, posortowanej według
czasu wstawienia. Gdy zachodzi potrzeba zmniejszenia pamięci podręcznej
pozycji katalogów, jądro usuwa elementy z końca listy, dzięki czemu
zachowywane są ostatnio używane obiekty. Trzeba jeszcze wyjaśnić co to są
pozycje katalogowe ,,ujemne''. Obiekt pozycji katalogu może stać się ujemny
gdy zostanie skasowane ostatnie sztywne dowiązanie odpowiedniego pliku.
Tablica haszująca jest zrealizowana za pomocą tablicy
dentry_hashtable. Każdy element jest wskaźnikiem do listy pozycji
katalogów, dla których funkcja haszująca zwraca tę samą wartość. Wielkość
tej tablicy zależy od ilości pamięci RAM. Pole d_hash obiektu pozycji
katalogu zawiera wskaźniki do elementów sąsiadujących na liście elementów o
tej samej wartości funkcji haszującej, która zwraca odpowiednią wartość na
podstawie adresu obiektu pozycji katalogu i nazwy pliku.
Metody związane z obiektem pozycji katalogu są pisywane przez strukturę dentry_operations, której adres jest przechowywany w polu d_op. Oto i one: