Re: [PATCH] namespace.c: fix bind mount from foreign namespace

From: Al Viro
Date: Fri May 13 2005 - 12:28:48 EST


On Fri, May 13, 2005 at 07:17:39PM +0200, Miklos Szeredi wrote:
> > > Bind mount from a foreign namespace results in
> >
> > ... -EINVAL
>
> Wrong answer. Look again, you wrote the code, so you _should_ know ;)

static inline int check_mnt(struct vfsmount *mnt)
{
return mnt->mnt_namespace == current->namespace;
}

static int do_loopback(struct nameidata *nd, char *old_name, int recurse)
{
struct nameidata old_nd;
struct vfsmount *mnt = NULL;
/* no changes of mnt */
err = -EINVAL;
if (check_mnt(nd->mnt) && ... ) {
/* assigns to mnt */
}
if (mnt) {
/* assigns to err */
}
up_write(&current->namespace->sem);
path_release(&old_nd);
return err;
}

Care to explain how that would not give -EINVAL?
-
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/