lkml.org 
[lkml]   [2010]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [autofs] [PATCH 04/38] autofs4: Save autofs trigger's vfsmount in super block info
From
Date
On Tue, 2010-06-22 at 14:49 +0900, J. R. Okajima wrote:
> Ian Kent:
> > +static vfsmount *autofs4_find_vfsmount(struct path *parent, struct dentry *root)
> > +{
> > + struct vfsmount *mnt = NULL;
> > + struct dentry *child;
> > +
> > + spin_lock(&dcache_lock);
> > + list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) {
>
> dentry->d_subdirs?
> parent->dentry->...?

Yep, thanks, cut and paste error.

Like I said, I don't want to go though the test process unless I have
something that is, in principal, OK.

If whatever approach we use is acceptable, and will work, then I'll put
the effort into it. I just don' want to spend a heap of time on
something that is basically not the right thing to do. For example,
exporting lookup_mnt?

>
> Or how about iterate_mounts() instead of loop over dentries?
> For example (just a example),
>
> struct args {
> /* input */
> struct dentry *root;
>
> /* output */
> struct vfsmount *mnt;
> };
>
> static int compare_mnt(struct vfsmount *mnt, void *arg)
> {
> struct args *a = arg;
>
> if (mnt->mnt_root != a->root)
> return 0;
> a->mnt = mntget(mnt);
> return 1;
> }
>
> struct vfsmount *autofs4_find_vfsmount(struct dentry *root)
> {
> int err;
> struct args args = {
> .root = root
> };
>
> err = iterate_mounts(compare_mnt, &args, current->nsproxy->mnt_ns);
> }

Oh, I'm not up with this, I'll have to check this out, might be useful
for more than just this case, thanks for the comments.

Ian




\
 
 \ /
  Last update: 2010-06-22 15:13    [W:0.126 / U:1.356 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site