haie1011 发表于 2015-04-25 22:19

关于在 EXT2中 自己分配dentry。结果出错了

最近因为项目需求 在修改一个文件系统。
自己分配目录项对象。
                struct dentry *dentry;
                struct qstrname =QSTR_INIT("foo", 3);
                dentry = d_alloc(sb->s_root,&name);

                printk( KERN_ERR " dentry name :%s\n",dentry->d_name);
到这一步的时候 内核oops
信息
BUG: unable to handle kernel paging request at 0000000200000000
IP: [<ffffffff81268169>] strnlen+0x9/0x40
PGD 1a501067 PUD 0
Oops: 0000 [#1] SMP
Call Trace:
[<ffffffff8126990f>] string+0x4f/0xf0
[<ffffffff8126b11a>] vsnprintf+0x1da/0x5b0
[<ffffffff8110bdf9>] ? irq_work_queue+0x69/0xb0
[<ffffffff8126b5b1>] vscnprintf+0x11/0x30
[<ffffffff8109bcc2>] vprintk_emit+0xb2/0x520
[<ffffffff81535a5f>] printk+0x4d/0x4f
[<ffffffffa032108c>] xip_file_write+0x1ac/0x2e0
[<ffffffff81175728>] vfs_write+0xc8/0x170
[<ffffffff81175c8f>] SyS_write+0x5f/0xb0
[<ffffffff81542682>] system_call_fastpath+0x16/0x1b

感觉像是 d_alloc这个只能vfs 访问 ,而我自己文件系统(模块) 不能请求访问?
页: [1]
查看完整版本: 关于在 EXT2中 自己分配dentry。结果出错了