Kathy KN wrote:
> Good day all,
> 
> How do I access/read the content of the files via using inodes
> or blocks that belong to the inode, at sys_link and vfs_link layer?
> I used bmap to access the blocks that belongs to the inodes, but
> getting access to the buffer_head's b_data doesn't seem to help.

Hi Kathy -

What you're trying to do is possible, but you need to go about it in a
different way. Ignore the buffer cache completely and use the page
cache; it's more appropriate for file contents.

You have two options:

If performance isn't critical, a simple approach would be to use your
old_dentry pointer to dentry_open a file and then vfs_read from it to a
buffer you allocate. Make sure you use get_fs/set_fs, since vfs_read
won't accept a kernel pointer otherwise.

If performance is more important or you really do only have access to an
inode, you can read from the page cache directly using inode->i_mapping
and read_cache_page. This has the advantage that you don't need to copy
the data to access it, but the disadvantage that it is more complex and
can be tricky to get right.

-Jeff

-- 
Jeff Mahoney
SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to