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