<p dir="ltr"><br>
On 01-Sep-2014 10:18 AM, &quot;Pranay Srivastava&quot; &lt;<a href="mailto:pranjas@gmail.com">pranjas@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On 30-Aug-2014 10:49 AM, &quot;Joshi&quot; &lt;<a href="mailto:joshiiitr@gmail.com">joshiiitr@gmail.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; I am trying to obtain file name at block layer level (above IO scheduler).<br>
&gt; &gt; At this level I receive bio structure, within which page pointers are kept.<br>
&gt; &gt;<br>
&gt; &gt; Thereby I do following to obtain the inode and dentry -<br>
&gt; &gt;<br>
&gt; &gt; struct inode *inode_ptr = page-&gt;mapping-&gt;host;<br>
&gt; &gt; if (inode_ptr != NULL)<br>
&gt; &gt; /* Access dentry i.e. i_dentry in the inode */<br>
&gt; &gt;<br>
&gt;<br>
&gt; Are you doing this in readpage(s) or writepage(s) callback? If that&#39;s the case your page would be locked and dentry/inode wouldn&#39;t go away.<br>
&gt;<br>
&gt; If you are doing something else then first make sure you do lock_page and proceed only if you get that page lock.<br>
&gt;<br>
&gt; Second you can try dget and dput before you start working with dentry.<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; This works usually. But problem is, inode and dentry may get released<br>
&gt; &gt; from inode and dentry cache at any time.<br>
&gt; &gt; While accessing inode/dentry I need to ensure that till the time I am<br>
&gt; &gt; accessing&#39;em these structure remain valid in memory.<br>
&gt; &gt; Is it possible to ensure that? Which structures/locks I need to check<br>
&gt; &gt; for the purpose.<br>
&gt;<br>
&gt; is this your observation from your test case? Can you explain your test case a bit.<br>
&gt;<br>
Have you seen d_alias and see if that can help you with filename?<br>
&gt; &gt;<br>
&gt; &gt; Appreciate any help.<br>
&gt; &gt;<br>
&gt; &gt; Thanks!<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Joshi<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Kernelnewbies mailing list<br>
&gt; &gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; &gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</p>