Обратите пожалуйста внимание, что файловый доступ в каталогах /rsbac к файлам и каталогам не должен выполняться со стандартными системными вызовами - они будут перехватываться и, по возможности, блокироваться. Предохраняйте rsbac_write_sem от открытия раньше, чем файл будет закрыт.
Предупреждение: чтение и запись из и в область ядра требует изменение дескриптора сегмента - смотрите reg_sample2.c как пример того, как это все делается.
kdev_t rsbac_root_dev; /* System root device */
extern struct semaphore rsbac_write_sem;
/* semaphore, to be held when writing to rsbac dir */
int rsbac_read_open (char *filename,
struct file *file,
kdev_t dev);
/* read-open a file in protected rsbac dir on
device dev. filename must be basename (no /). */
int rsbac_write_open(char *filename,
struct file *file,
kdev_t kdev);
/* same for write-open */
void rsbac_read_close(struct file *);
/* close with cleanup */
void rsbac_write_close(struct file *);