Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 964bd183 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] get rid of __user_path_lookup_open



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 516e0cc5
Loading
Loading
Loading
Loading
+10 −4
Original line number Original line Diff line number Diff line
@@ -108,9 +108,15 @@ asmlinkage long sys_uselib(const char __user * library)
{
{
	struct file *file;
	struct file *file;
	struct nameidata nd;
	struct nameidata nd;
	int error;
	char *tmp = getname(library);
	int error = PTR_ERR(tmp);


	error = __user_path_lookup_open(library, LOOKUP_FOLLOW, &nd, FMODE_READ|FMODE_EXEC);
	if (!IS_ERR(tmp)) {
		error = path_lookup_open(AT_FDCWD, tmp,
					 LOOKUP_FOLLOW, &nd,
					 FMODE_READ|FMODE_EXEC);
		putname(tmp);
	}
	if (error)
	if (error)
		goto out;
		goto out;


+0 −13
Original line number Original line Diff line number Diff line
@@ -1193,19 +1193,6 @@ static int path_lookup_create(int dfd, const char *name,
			nd, open_flags, create_mode);
			nd, open_flags, create_mode);
}
}


int __user_path_lookup_open(const char __user *name, unsigned int lookup_flags,
		struct nameidata *nd, int open_flags)
{
	char *tmp = getname(name);
	int err = PTR_ERR(tmp);

	if (!IS_ERR(tmp)) {
		err = __path_lookup_intent_open(AT_FDCWD, tmp, lookup_flags, nd, open_flags, 0);
		putname(tmp);
	}
	return err;
}

static struct dentry *__lookup_hash(struct qstr *name,
static struct dentry *__lookup_hash(struct qstr *name,
		struct dentry *base, struct nameidata *nd)
		struct dentry *base, struct nameidata *nd)
{
{
+0 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,6 @@ extern int path_lookup(const char *, unsigned, struct nameidata *);
extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
			   const char *, unsigned int, struct nameidata *);
			   const char *, unsigned int, struct nameidata *);


extern int __user_path_lookup_open(const char __user *, unsigned lookup_flags, struct nameidata *nd, int open_flags);
extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags);
extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags);
extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
		int (*open)(struct inode *, struct file *));
		int (*open)(struct inode *, struct file *));