System plików Ext2 implementuje katalogi jako specjalny rodzaj plików, których bloki danych przechowują nazwy plików razem z odpowiadającymi im numerami i-węzłów. Dokładniej te bloki przechowują struktury typu ext2_dir_entry_2, a w każdej jest zapisany
W celu jednak przyśpieszenia dostępu do pozycji katalogowych część z
nich jest przechowywana w pamięci w strukturze
dentry, która reprezentuje poszczególne obiekty z katalogów.
Wygląda ona mniej więcej tak:
struct dentry {
int d_count; /* ile procesów z niego korzysta */
unsigned int d_flags; /* jakieś flagi */
struct inode * d_inode; /* wsk. na i-węzeł naszego katalogu */
struct inode * d_parent; /* wsk. na i-węzeł kat. nadrzędnego */
...
struct list_head d_hash; /* lista mieszająca tego katalogu */
...
struct qstr d_name; /* nazwa - jeśli jest długa */
...
unsigned char d_iname[DNAME_INLINE_LEN];
} /* nazwa - jeśli jest krótka */