Thank you Valids. That worked!

For others who may look for this info:
If you have access to the struct file *
then you could obtain this info with the following
condition check:

============================================
struct file *filp = <blah blah>;
if (filp->f_path.mnt->mnt_flags & MNT_NODEV)
        pr_info("ramfs node\n");
else
        pr_info("persist storage backed node\n");
============================================


On Wed, Jul 20, 2016 at 7:49 PM, <Valdis.Kletnieks@vt.edu> wrote:
On Wed, 20 Jul 2016 18:46:47 -0700, Manoj Rao said:

> However, I need to run this for each and every read system call which
> includes all the procfs, sysfs and other RAM fs based file reads. My
> code is causing the kernel to panic at some point due to an illegal
> memory access while trying to obtain the starting sector/block for the
> file that's currently being read. My hunch is the crash occurs when
> file being read is on a non-persistent fs such as a sysfs node
> I have gotten hold of the inode structure and I'm trying to find if
> a given inode is stored persistently or not and I've been unable to
> find this information so far.

Hint:  First, check if the filesystem is a pseudo filesystem before bothering
to look for baking store.  If you need to know how to do that, steal the
code from the code that prints /proc/filesystems - if it says 'nodev', you'll
only find pain looking for backing storage.