Re: Where's the create() pointer?

From: Justin Banks
Date: Sat Jan 19 2008 - 22:37:52 EST


Trond Myklebust wrote
>
> On Sat, 2008-01-19 at 12:02 -0700, Justin Banks wrote:
> > Trond Myklebust wrote
> > >
> > > On Sat, 2008-01-19 at 08:07 -0700, Justin Banks wrote:
> > > > It's probably been this way for a long time, and I'm just noticing, but
> > > > I can't seem to find the create() (among others) pointer for NFS filesystems.
> > > >
> > > > Specifically, If I look at sb->s_root->d_inode->i_op there's no create
> > > > there. How do I find it? I'm guessing that the ability to share mount
> > > > structures between multiple NFS mounts resulted in some kind of fake
> > > > superblock, but I just can't figure out where to find the functions.
> > >
> > > Why would you want to do this in the first place?
> >
> > I'm just looking at trapping new creates on NFS, and so I need to find
> > the pointer.
>
> What is your purpose in trapping creates on the client? Is this for
> accounting purposes? If so, why wouldn't inotify, or even a systemtap
> script suffice?

Could do inotify, except on a large-ish filesystem, it's really
unuseable, if you want to track everything that's going on.

> Anyhow, the simplest way to find the pointer is to grep for nfs_create
> in /proc/kallsyms.

Ugh. That's an ugly way, seems to me. Isn't there a way, given the
superblock? I mean, the VFS does it that way, doesn't it?

-justinb

--
Justin Banks
BakBone Software
justinb@xxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/