Внутреннее устройство ядра Linux 2.4

       

Alloc_undo()


Вызов функции alloc_undo() должен производиться под установленной глобальной блокировкой семафора. В случае возникновения ошибки - функция завершает работу со снятой блокировкой.

Перед тем как вызовом kmalloc() распределить память под структуру и массив корректировок, блокировка снимается. Если память была успешно выделена, то она восстанавливается вызовом .

Далее новая структура инициализируется, указатель на структуру размещается по адресу, указанному вызывающей программой, после чего структура вставляется в начало списка "откатов" текущего процесса.



Содержание раздела