Если я уже держу семафор mmap (чтение) для mm_struct, и я бы хотел записать некоторые данные в член структуры страницы, если бы я перечитал семафор и попытался получить down_write для mm_struct, или я должен использовать отдельная блокировка (это элемент структуры, который я создал, это список). Также, если у меня уже есть семафор down_read и я вызываю другой метод, который down_reads тот же семафор, это не должно тупиковать из моего понимания правильно?