Re: vfsmount

Srikanth Srinivasan
2008-09-25T11:53:21Z

On Thu, Sep 25, 2008 at 12:13 PM, Manish Katiyar <mkatiyar@gmail.com> wrote:
>
> On Mon, Sep 22, 2008 at 10:27 PM, Rohit Sharma <imreckless@gmail.com> wrote:
> > I am interested in getting the vfsmount structure of the mounted file
> > system from my module.
> > I used filp = get_empty_filp() (filp is file pointer)
> > function to create an empty file object (as this contains pointer to
> > vfsmount structure)
> > file object has a field f_vfsmnt which points to the vfsmount structure
> > i am storing this in my own my_vfsmnt structure of type vfsmount.
> > my_vfsmnt = filp->f_vfsmnt
> > but i am getting my_vfsmnt as NULL ??
> >
> > is there any other way of getting the vfsmount structure ??
>
> Will this help ??
>
> [root@localhost test]# insmod katiyar.ko
> err=0, Path = /
> [root@localhost test]# cat nngfs.c
> #include <linux/module.h>
> #include <linux/fs.h>
> #include <linux/mount.h>
> #include <linux/namei.h>
>
> #define MOD_AUTHOR "Manish Katiyar"
> #define MODULE_DESC "A Simple test module "
>
> static int nngfs_fs_init(void){
> int err;
> struct vfsmount *tmp;
> struct nameidata nd;
> err = path_lookup(".",LOOKUP_FOLLOW | LOOKUP_DIRECTORY,&nd);
> tmp = nd.path.mnt;
> printk(KERN_CRIT "err=%d, Path = %s\n",err,tmp->mnt_root->d_name.name);
> return err;
> }
>
> static void nngfs_fs_exit(void){
> printk(KERN_INFO "Unregistering \n");
> return ;
> }
>
> module_init(nngfs_fs_init);
> module_exit(nngfs_fs_exit);
>
> MODULE_AUTHOR(MOD_AUTHOR);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION(MODULE_DESC);
>
>
> Thanks -
> Manish
>
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >

>From kernel version 2.6.25 on you could directly use the
"current->fs->altroot.mnt" to retrieve the vfsmount structure.

Thanks -
Srikanth