s_blocks_count - całkowita liczba bloków danych
s_free_blocks_count - liczba wolnych bloków danych
s_inodes_count - liczba i-węzłów na partycji
s_free_inodes_count - liczba wolnych i-węzłów
s_inodes_pre_group - liczba i-węzłów w grupie
s_mnt_count - liczba operacji montowania od ostatniego sprawdzenia
s_max_mnt_count - co ile montowań wykonujemy sprawdzenia
s_state - status (0 - zamontowany, 1 - poprawnie odmontowany, 2 - błędy)
s_free_blocks_count - liczba wolnych bloków w grupie
s_free_inodes_count - liczba wolnych i-węzłów w grupie
s_block_bitmap wielkości 8 (standardowo) ext2_count_free
- Liczy ile jest wolnych bloków w podanej mapie bitowej.
load_block_bitmap - Ładuje mapę bitową zadanej grupy bloków do pamięci podręcznej.
read_block_bitmap - Odczytuje mapę bitową z dysku do zadanego slotu w superbloku.
static int read_block_bitmap (struct super_block * sb,
unsigned int block_group,
unsigned long bitmap_nr);
*sb - wskaźnik do superbloku, dla którego ładujemy bitmapę.
block_group - numer grupy bloków którego bitmapę ładujemy.
bitmap_nr - indeks w tablicy bitmap superbloku.
unsigned long ext2_count_free (struct buffer_head * map,
unsigned int numchars);
*map - początek buforu z mapą bitową
numchar - długość mapy bitowej (w bajtach)
static inline int load_block_bitmap (struct super_block * sb,
unsigned int block_group);
*sb - wskaźnik do deskryptora super bloku w obrębie którego działamy.
block_group - numer grupy bloków której bitmapę chcemy wczytać.
static int __load_block_bitmap (struct super_block * sb,
unsigned int block_group)
*sb - wskaźnik do deskryptora superbloku w obrębie którego działamy.
block_group - numer grupy bloków której bitmapę chcemy wczytać.
void ext2_free_blocks (const struct inode * inode,
unsigned long block,
unsigned long count)
static int ext2_alloc_block (struct inode * inode,
unsigned long goal,
int *err)
*inode - wskaźnik do i-węzła dla którego chcemy alokować nowy blok
goal - numer bloku od którego mamy rozpocząć poszukiwania
*err - wsk. na potrzeby wyniku
*err - wsk. do ew. błędu
ext2_new_block z takim samy goal i inode oraz z odpowiednimi wsk. dla prealokacji
ext2_new_block z takim samy goal i inode
oraz z pustymi wskaźnikami dla prealkokacji
int ext2_new_block (const struct inode * inode,
unsigned long goal,
u32 * prealloc_count,
u32 * prealloc_block,
int * err)
*inode - wskaźnik do i-węzła dla którego chcemy alokować nowy blok
goal - numer bloku od którego mamy rozpocząć poszukiwania
*prealloc_count - wsk. do liczby bloków które będziemy próbować prealokować
*prealloc_block - wsk. na potrzeby wyniku
*err - wsk. na potrzeby wyniku
*prealloc_count - wsk. do liczba bloków które udało nam sie prealokować
*prealloc_block - wsk. do numeru pierwszego prealokowanego bloku
*err - wsk. do ew. błędu
lock_super)
prealloc_count-1 bloków za nim.
unlock_super)