Next: About this document ...
Up: Obsługa pamięci podręcznej katalogów
Previous: Pisanie modułów
  Spis rzeczy
- Zakładając, że
kat1, kat2, ...
to katalogi, zaś ln1, ln2 ...
to dowiązania symboliczne, zaś flaga LOOKUP_FOLLOW
jest ustawiona,
oraz ścieżki są zapisane poprawnie, odpowiedzieć, czy funkcja
path_walk
zakończy się sukcesem (chodzi o to czy uda się jej
przejść przez wszystkie linki) dla poniższych ścieżek
a) kat1/ln1/ln2
b) /kat1/kat2/ln1/kat3
c) /ln1/kat1/ln2/
rozw: a) N (na końcu ścieżki nie ma ukośnika),
b) T (jest w środku), c) T (tu już ukośnik na końcu wiersza jest)
- Opisz działanie algorytmu namei dla ścieżki
../root/bin
jeśli bieżącym katalogiem jest /tmp
rozw: zaczynamy od bieżącego katalogu i potem zgodnie z
algorytmem sprawdzając prawa dostępu, jeśli proces nie działa z prawami
roota to najprawdopodobniej algorytm zakończy się błędem bo raczej nie
mamy praw do odczytywania katalogu domowego admina (i prawidłowo)
- Załóżmy, że piszemy sobie moduł korzystający z procfs-a,
dzięki któremu procesy mogą odczytywać plik jujufile. Czy
możliwe jest zadbanie o to, aby w momencie usuwania naszego modułu np
przez rmmod, nasz moduł sprawdzał czy przypadkiem żaden proces
nie ma otwartego pliku jujufile? Posługujemy się jednynie
interfejsem opisanym w tej pracy.
rozw: Niestety nie ma sposobu (przy tym interfejsie) abyśmy byli
powiadamiani, o tym, że ktoś otwiera lub zamyka nasz plik. Ale uwaga! Jest
sposób - znacznie trudniejszy co prawda do zaimplementowania, który
pozwala poradzić sobie z tym problemem.
Możemy jednak pójść na łatwiznę
niczego nie pisząc, tylko używać makra MOD_USE_INC_COUNT oraz
MOD_USE_DEC_COUNT, w tym celu inkludując plik linux/module.h
Next: About this document ...
Up: Obsługa pamięci podręcznej katalogów
Previous: Pisanie modułów
  Spis rzeczy
2001-12-18