Я знаю, что мы должны избегать записи в файл из ядра. Но из любопытства я все еще пытаюсь записать данные, но ядро падает.
int file_write(char *filename, unsigned long long offset, unsigned char *data, unsigned int size)
{
mm_segment_t oldfs;
int ret;
struct file *filp;
oldfs = get_fs();
set_fs(KERNEL_DS);
filp = filp_open(filename, O_CREAT | O_RDWR, 0644);
ret = vfs_write(filp, data, size, &offset);
set_fs(oldfs);
filp_close(filp,NULL);
return ret;
}
Функция vfs_write перезапускает систему.