Re: How does ramfs actually fills the page cache with data?

2001-06-24 Thread Ho Chak Hung

thanks a lot for your reply

But is it at all possible to put data into page cache without going through the inodes 
or files? I mean, for example, if you are given a string "abcde", and you want to 
allocate a page to store this "abcde" into that page and add that page to the page 
cache, what would you do? 

2)The ramfs uses the generic file operation
Ingo Oeser <[EMAIL PROTECTED]> wrote:
>
> On Fri, Jun 22, 2001 at 05:45:27PM -0400, Ho Chak Hung wrote:
> > In fs/ramfs/inode.c, how does ramfs actually fills the page
> > cache with data? In the readpage operation, it only zero-fill
> > the page if it didn't already exist in the page cache. However,
> > how do I actually fill the page with data?
> 
> The page cache does it itself. 
> 
> "readpage" is to move pages from the backing store into the page
> cache. 
> 
> "writepage" and friends is for updating the backing store with
> the contents of the page cache.
> 
> There is no real backing store of ramfs, since ramfs data lives
> completly in page cache. 
> 
> But we cannot give the user random memory contents, so we zero it
> out on readpage and prepare_write.
> 
> The data is copied with copy_{from,to}_user in the generic file
> operations (look how ramfs_file_operations is defined and look at
> the functions referenced), which read/write through page cache.
> 
> Regards
> 
> Ingo Oeser
> -- 
> Use ReiserFS to get a faster fsck and Ext2 to fsck slowly and gently.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 
__
__
Get your own FREE, personal Netscape Webmail account today at 
http://webmail.netscape.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: How does ramfs actually fills the page cache with data?

2001-06-23 Thread Ingo Oeser

On Fri, Jun 22, 2001 at 05:45:27PM -0400, Ho Chak Hung wrote:
> In fs/ramfs/inode.c, how does ramfs actually fills the page
> cache with data? In the readpage operation, it only zero-fill
> the page if it didn't already exist in the page cache. However,
> how do I actually fill the page with data?

The page cache does it itself. 

"readpage" is to move pages from the backing store into the page
cache. 

"writepage" and friends is for updating the backing store with
the contents of the page cache.

There is no real backing store of ramfs, since ramfs data lives
completly in page cache. 

But we cannot give the user random memory contents, so we zero it
out on readpage and prepare_write.

The data is copied with copy_{from,to}_user in the generic file
operations (look how ramfs_file_operations is defined and look at
the functions referenced), which read/write through page cache.

Regards

Ingo Oeser
-- 
Use ReiserFS to get a faster fsck and Ext2 to fsck slowly and gently.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



How does ramfs actually fills the page cache with data?

2001-06-22 Thread Ho Chak Hung

In fs/ramfs/inode.c, how does ramfs actually fills the page cache with data? In the 
readpage operation, it only zero-fill the page if it didn't already exist in the page 
cache. However, how do I actually fill the page with data?

Thanks a lot.


__
Get your own FREE, personal Netscape Webmail account today at 
http://webmail.netscape.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/