On Thu, Jun 1, 2017 at 12:02 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote: > This is a variant of lookup_one_len() that does not check task > permissions. > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > fs/namei.c | 29 +++++++++++++++++++++++++++++ > include/linux/namei.h | 1 + > 2 files changed, 30 insertions(+) > > diff --git a/fs/namei.c b/fs/namei.c > index 263caf0efafe..837da8bfb36f 100644 > --- a/fs/namei.c > +++ b/fs/namei.c > @@ -2511,6 +2511,35 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) > EXPORT_SYMBOL(lookup_one_len); > > /** > + * lookup_one_len_noperm - filesystem helper to lookup single pathname component > + * @name: pathname component to lookup > + * @base: base directory to lookup from > + * @len: maximum length @len should be interpreted to > + * > + * Note that this routine is purely a helper for filesystem usage and should > + * not be called by generic code. > + * > + * Unlike lookup_one_len, it does not check the task permissions. > + * > + * The caller must hold base->i_mutex. > + */ > +struct dentry *lookup_one_len_noperm(const char *name, struct dentry *base, > + int len) > +{ > + struct qstr this; > + int err; > + > + WARN_ON_ONCE(!inode_is_locked(base->d_inode)); > + > + err = lookup_one_len_init(&this, base, name, len); > + if (err) > + return ERR_PTR(err); > + > + return __lookup_hash(&this, base, 0); > +} > +EXPORT_SYMBOL(lookup_one_len); Miklos, Chandan pointed out to me that I have a copy&paste typo: +EXPORT_SYMBOL(lookup_one_len_noperm); Please fix when applying if I don't end up sending another version. Thanks, Amir. -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html