<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hey,</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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 `<span class="" style="background-color:rgb(255,255,204)">read_cache_page</span>`. This calls eCryptfs&#39; `readpage` implementation. We believe `<span class="" style="background-color:rgb(255,255,204)">read_cache_page</span>` calls `readpage` with a <span class="" style="background-color:rgb(255,255,204)">page</span> that we have not written to before (since the user is increasing the file size via `ftruncate`).</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">What function can we use to <span class="" style="background-color:rgb(255,255,204)">identify</span> when we are given a <span class="" style="background-color:rgb(255,255,204)">page</span> to our `readpage` implementation that is a <span class="" style="background-color:rgb(255,255,204)">page</span> we have never written to before? We need to do this so we know if should check the integrity of the data in the <span class="" style="background-color:rgb(255,255,204)">page</span> (if we wrote to it before) or just ignore the contents (because it is a <span class="" style="background-color:rgb(255,255,204)">fresh</span> <span class="" style="background-color:rgb(255,255,204)">page</span>with garbage data). For more information our ecryptfs_readpage implementation is available on github [2].</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Please note that I am not subscribed to kernelnewbies so please include me directly in any replies.</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">[1]: <a href="http://marc.info/?l=ecryptfs-users&amp;m=139007357027191&amp;w=2" target="_blank">http://marc.info/?l=ecryptfs-users&amp;m=139007357027191&amp;w=2</a></div>

<div style="font-family:arial,sans-serif;font-size:13px">[2]: <a href="https://github.com/zmanji/ecryptfs/blob/next-patch/fs/ecryptfs/mmap.c#L193" target="_blank">https://github.com/zmanji/ecryptfs/blob/next-patch/fs/ecryptfs/mmap.c#L193</a></div>

<div><br></div>-- <br>Zameer Manji<br>
</div>