Do tematu: Struktury danych
inode
 
| Typ | Nazwa | Opis | 
| unsigned long | i_ino | numer i-węzła w dyskowej tablicy i-węzłów | 
| umode_t | i_mode | typ pliku: zwykły(IS_REG), katalog(IS_DIR), łącze nazwane(IS_FIFO),
specjalny, znakowy, 0 gdy wolny; 
 także prawa dostępu do pliku dla wszystkich, grupy użytkownika oraz jego samego  | 
| nlink_t | i_link | liczba dowiązań do pliku | 
| unsigned long | i_version | licznik zdarzeń ustawiany na zmienną event (zwiększoną o jeden) przy odczycie i-węzła z dysku | 
| uid_t | i_uid | identyfikator właściciela pliku | 
| gid_t | i_gid | identyfikator grupy właściciela pliku | 
| off_t | i_size | rozmiar pliku w bajtach (co najwyżej 4 GB) | 
| time_t | i_ctime | czas utworzenia pliku | 
| time_t | i_atime | czas ostatniego dostępu do pliku | 
| time_t | i_mtime | czas ostatniej modyfikacji pliku | 
| unsigned long | i_blocks | liczba bloków dyskowych zajmowanych przez plik | 
| unsigned long | i_blksize | rozmiar bloków so przesyłania danych dyskowych (inicjowane na PAGE_SIZE) | 
| kdev_t | i_dev | wskazuje na system plików | 
| kdev_t | i_rdev | wskazuje na rzeczywiste urządzenie - tak jak jest zapisany na dysku | 
| struct super_block | *i_sb | wskaźnik na blok identyfikacyjny urządzenia, do którego należy i-węzeł | 
| unsigned short | i_flags | tutaj trzymane są flagi określające sposób korzystania z i-węzła, jak również pliku, który wyznacza (zdef. w >>fs.h; m.in. MS_NOATIME - nie zmieniać czasu modyfikacji, S_WRITE - do zapisu...) | 
| unsigned short | i_count | ilość procesów, które odwołują się do i-węzła; wartość zero oznacza, że struktura i-węzła jest wolna i może w razie potrzeby być wykorzystywana przez inne procesy | 
| struct semaphore | i_sem | semafor do blokowania, >>open.c, >>namei.c, >>read_write.c | 
| struct wait_queue | *i_wait | kolejka zadań, które czekają na zwolnienie i-węzła (funkcje: >>lock_inode, >>unlock_inode w >>fs/inode.c) | 
| struct file_lock | *i_lock | struktura przechowująca informacje do blokowania pliku | 
| unsigned char | i_lock | czy węzeł jest zablokowany | 
| struct inode | *i_next, *i_prev | wskaźniki utrzymujące listę wolnych i-węzłów ('korzeniem' listy jest zmienna globalna first_inode >> fs/inode.c) | 
| struct inode | *i_hash_next, *i_hash_prev | wskaźniki łączące i-węzeł w listę z innymi znajdującymi się w tablicy haszującej pod tym samym numerem | 
| struct inode | *i_bound_to | ??? (*) | 
| struct inode | *i_bound_by | ??? (*) | 
| struct inode | *i_mount | wskaźnik do i-węzła, pod którym zamontowano system plików | 
| u_c | i_dirt | wartość stwierdzająca, czy i-węzeł w pamięci jest różny od dyskowego i czy w związku z tym trzeba go zapisać na dysk (write_inode() w >>fs/inode.c) | 
| u_c | i_pipe | czy i-węzeł opisuje łącze komunikacyjne | 
| u_c | i_sock | czy i-węzeł opisuje gniazdo | 
| struct inode_operations | zestaw operacji na i-węzłach (takich, jak tworzenie nowego), ściśle związanych z wykorzystywanym systemem plików - np. ext2 ; definicja: >> include/fs.h | |
| union | u | zależna od systemu plików struktura przechowująca informacje o i-węźle | 
| ext2_inode_info | ext2_i | zawartość powyższej unii u dla systemu ext2 | 
| struct vm_area_struct | *i_mmap | blok pamięci zawierający i-węzeł | 
| struct page | *i_pages | pierwsza ramka, na podwójnie wiązanej liście ramek umieszczenia i-węzła | 
| unsigned long | i_nrpages | liczba ramek na powyższej liście | 
| struct dquot | *i_dquot[MAX_QUOTA] | odnośnik do systemu ograniczeń (ang. quotas) | 
| u_c | i_seek | ??? (*) | 
| u_c | i_update | ??? (*) | 
| unsigned short | i_writecount | licznik procesów mających prawa zapisu do pliku | 
| unsigned char | i_condemned | czy bufor i-węzła jest przeznaczony do wyczyszczenia | 
Autor:
Grzegorz Gawron
Skład:
Robert Dąbrowski