[PATCH] get rid of __user_path_lookup_open
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
516e0cc564
commit
964bd18362
3 changed files with 9 additions and 17 deletions
12
fs/exec.c
12
fs/exec.c
|
@ -106,11 +106,17 @@ static inline void put_binfmt(struct linux_binfmt * fmt)
|
||||||
*/
|
*/
|
||||||
asmlinkage long sys_uselib(const char __user * library)
|
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;
|
||||||
|
|
||||||
|
|
13
fs/namei.c
13
fs/namei.c
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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 *));
|
||||||
|
|
Loading…
Reference in a new issue