Zaprezentowana zostanie wersja ifree z systemu plików Ext2. Algorytm ifree wykorzystuje funkcja iput() po skasowaniu ostatniego dowiązania do danego i-węzła. W systemie plików Ext2 jako operacja zwalniania węzła jest ustawiona funkcja ext2_delete_inode(), która wywołuje funkcję ext2_free_inode().

Funkcja ext2_free_inode() kasuje i-węzeł dyskowy, identyfikowany przez strukturę i-węzła, której adres jest przekazywany jako parametr. Jądro powinno wywoływać tę funkcję po serii operacji czyszczących, związanych z wewnętrznymi strukturami danych i danymi w samym pliku: po tym, jak struktura i-węzła zostanie usunięta z tablicy przemieszczania i-węzła, gdy z odpowiedniego katalogu usunięte zostanie ostatnie sztywne dowiązanie do tego i-węzła oraz gdy plik zostanie skrócony do długości 0, w celu odzyskania wszystkich jego bloków danych.

Funkcja wykonuje następujące działania:
1. Wywołuje lock_super() w celu uzyskania wyłącznego dostępu do struktury superbloku.
2. Wylicza z numeru i-węzła oraz liczby i-węzłów w każdej grupie bloków indeksy grupy bloków, zawierającej i-węzeł dyskowy.
3. Wywołuje load_inode_bitmap() w celu pobrania mapy bitowej i-węzła.
4. Wywołuje funkcję clear_inode(), która wykonuje następujące operacje: a. Zwalnia wszystkie, powiązane z i-węzłem strony z pamięci podręcznej stron, usypiając aktualny proces, jeżeli niektóre z nich są zablokowane (Strony mogą być zablokowane, ponieważ jądro może być w trakcie ich czytania lub zapisywania, a nie ma możliwości zatrzymania sterownika urządzenia blokowego).
b. Wywołuje, jeżeli została zdefiniowana, metodę clear_inode struktury superbloku; system plików Ext2 jednak jej nie definiuje.
5. Zwiększa pole bg_free_inodes_count deskryptora grupy. Jeżeli usunięty i-węzeł jest katalogiem, zmniejsza pole bg_used_dirs_count. Zaznacza bufor, zawierający deskryptor grupy, jako "brudny".
6. Zwiększa pole s_free_inodes_count superbloku i oznacza zawierający go bufor jako brudny. Ustawia także pole s_dirt struktury superbloku na 1.
7. Czyści bit odpowiadający i-węzłowi w mapie bitowej i-węzłów i oznacza zawierający ją bufor jako brudny. Oprócz tego, jeżeli system plików został zamontowany z flagą MS_SYNCHRONIZE, wywołuje ll_rw_block() i czeka na zakończenie operacji zapisu bufora mapy bitowej.
8. Wywołuje unlock_super() w celu odblokowania struktury superbloku.