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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html