Accessing on-disk datastructures from a module

Manish Katiyar mkatiyar at gmail.com
Wed Jan 19 02:48:55 EST 2011


On Tue, Jan 18, 2011 at 11:40 PM, Martin DeMello
<martindemello at gmail.com> wrote:
> On Wed, Jan 19, 2011 at 1:03 PM, Manish Katiyar <mkatiyar at gmail.com> wrote:
>> On Tue, Jan 18, 2011 at 11:23 PM, Martin DeMello
>> <martindemello at gmail.com> wrote:
>>> I would like to maintain some filesystem metadata as an on-disk
>>> datastructure that can be read and written to from within the
>>> filesystem module. I know file access from within the kernel is a bad
>>> idea; what is the recommended alternative for this?
>>
>> You can try to have a reserved inode and use that.
>
> That is what I was trying to do, but I can't find any documentation on
> how to read/write to it. Could you point me towards some docs or
> examples?

Once you have your reserved inode, you can open it using iget to get
the inode pointer. After that it would be same way as you would have
done if you were allowed file ops in kernel. For eg.. If my reserved
inode is 100 and I'm using ext2, it would be something like

read_reserved_block(int blockno) {
....
inodep = ext2_iget(sb, 100)
err = ext2_get_block(inodep, blockno, &bh, 0);
iput(inodep);
.......
}

Have a look at ext2_quota_read() for some hints.



-- 
Thanks -
Manish
==================================
[$\*.^ -- I miss being one of them
==================================



More information about the Kernelnewbies mailing list