Добрый день всем! Есть следующий пример, в котором создается файл на /proc который тут же открывается через файловый дескриптор. Так вот, проблема в том, что fp->f_dentry->d_inode->u.generic_ip содержит NULL (вместо адреса file_entry, как ожидается) поэтому дальнейшая работа из ядра с этим файлом проваливается. С другой стороны, созданный файл открвается и читается из user (c помощью open(...)), значит в данном случае u.generic_ip не 0, если верить исходникам операции чтения из файла. Так вот вопрос: кто виноват? или create_proc_entry(...) что-то не то создал или filp_open(...) что-то не так открыл. Этот же самый код без проблем работает в 2.4.24, но я не могу на него (ядро) перейти по условиям задачи... С надеждой на помощь... С.П. my_root = create_proc_entry("test_dir", (S_IFDIR | S_IRUGO | S_IXUGO), (struct proc_dir_entry*)0); if (my_root == NULL) { result = -ENOMEM; goto out; } my_root->owner = THIS_MODULE; printk("<1>dir_iops: %p\n",my_root->proc_iops); printk("<1>dir_fops: %p\n",my_root->proc_fops); file_entry = create_proc_entry("testname", (S_IRUGO | S_IWUGO), my_root); file_entry->owner = THIS_MODULE; file_entry->read_proc = vars_reader; printk("<1>file_iops: %p\n",file_entry->proc_iops); printk("<1>file_fops: %p\n",file_entry->proc_fops); printk("<1>file_data: %p\n",file_entry->data); printk("<1>file_read_proc: %p\n",file_entry->read_proc); printk("<1>file_write_proc: %p\n",file_entry->write_proc); fp = filp_open("/proc/test_dir/testname", O_RDONLY, 0); if (IS_ERR(fp)) { printk("<1>Error open file with code %ld\n",-PTR_ERR(fp)); } else { printk("<1>vsfmnt: %p\n",fp->f_vfsmnt); printk("<1>fops: %p\n",fp->f_op); printk("<1>node: %p\n",fp->f_dentry->d_inode->u.generic_ip); filp_close(fp,0); }
Ответ на:
Чудеса
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Проблема при работе /proc на ядре 2.4.18 (2004)
- Форум Чудеса (2006)
- Форум Чудеса... (2005)
- Форум Чудеса (2005)
- Форум kernel 2.4.18 (2002)
- Форум Чудеса автоматизации (2012)
- Форум Чудеса модульности (2012)
- Форум Чудеса htop (2011)
- Галерея Чудеса энергосбережения (2014)
- Форум Чудеса SSD (2018)