On Apr 6, 2005 3:01 AM, Jeff Mahoney <[EMAIL PROTECTED]> wrote: > 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.
Hi Jeff, Is it possible to modify the cached page, and invalidate it back to update the page cache of the new page? I did a recursive grep and could only find functions that let you read or grab pages in the cache. Kathy - 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