How to identify a 'fresh' page from read_cache_page?

Zameer Manji zmanji at gmail.com
Mon Jan 27 21:25:34 EST 2014


Hey,

My colleague Will and I are working on improving eCryptfs, an encrypted
file system that ships with linux. We are trying to add a new cipher mode
and we have run into a problem [1]. When the user calls `ftruncate` on a
file and increases the file size, eCryptfs attempts fetch new pages for the
file by calling `read_mapping_page` and which calls `read_cache_page`. This
calls eCryptfs' `readpage` implementation. We believe `read_cache_page`
calls `readpage` with a page that we have not written to before (since the
user is increasing the file size via `ftruncate`).

What function can we use to identify when we are given a page to our
`readpage` implementation that is a page we have never written to before?
We need to do this so we know if should check the integrity of the data in
the page (if we wrote to it before) or just ignore the contents (because it
is a fresh pagewith garbage data). For more information our
ecryptfs_readpage implementation is available on github [2].

Please note that I am not subscribed to kernelnewbies so please include me
directly in any replies.

[1]: http://marc.info/?l=ecryptfs-users&m=139007357027191&w=2
[2]:
https://github.com/zmanji/ecryptfs/blob/next-patch/fs/ecryptfs/mmap.c#L193

-- 
Zameer Manji
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140127/c2c07101/attachment.html 


More information about the Kernelnewbies mailing list