Commit a4a3bdd7 authored by Al Viro's avatar Al Viro

kill opendata->{mnt,dentry}

->filp->f_path is there for purpose...
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d9585277
...@@ -83,8 +83,6 @@ extern struct super_block *user_get_super(dev_t); ...@@ -83,8 +83,6 @@ extern struct super_block *user_get_super(dev_t);
* open.c * open.c
*/ */
struct opendata { struct opendata {
struct dentry *dentry;
struct vfsmount *mnt;
struct file *filp; struct file *filp;
}; };
struct open_flags { struct open_flags {
......
...@@ -2269,14 +2269,11 @@ static struct file *atomic_open(struct nameidata *nd, struct dentry *dentry, ...@@ -2269,14 +2269,11 @@ static struct file *atomic_open(struct nameidata *nd, struct dentry *dentry,
if (nd->flags & LOOKUP_DIRECTORY) if (nd->flags & LOOKUP_DIRECTORY)
open_flag |= O_DIRECTORY; open_flag |= O_DIRECTORY;
od->dentry = DENTRY_NOT_SET; od->filp->f_path.dentry = DENTRY_NOT_SET;
od->mnt = nd->path.mnt; od->filp->f_path.mnt = nd->path.mnt;
error = dir->i_op->atomic_open(dir, dentry, od, open_flag, mode, error = dir->i_op->atomic_open(dir, dentry, od, open_flag, mode,
opened); opened);
if (error < 0) { if (error < 0) {
if (WARN_ON(od->dentry != DENTRY_NOT_SET))
dput(od->dentry);
if (create_error && error == -ENOENT) if (create_error && error == -ENOENT)
error = create_error; error = create_error;
filp = ERR_PTR(error); filp = ERR_PTR(error);
...@@ -2290,13 +2287,13 @@ static struct file *atomic_open(struct nameidata *nd, struct dentry *dentry, ...@@ -2290,13 +2287,13 @@ static struct file *atomic_open(struct nameidata *nd, struct dentry *dentry,
} }
if (error) { /* returned 1, that is */ if (error) { /* returned 1, that is */
if (WARN_ON(od->dentry == DENTRY_NOT_SET)) { if (WARN_ON(od->filp->f_path.dentry == DENTRY_NOT_SET)) {
filp = ERR_PTR(-EIO); filp = ERR_PTR(-EIO);
goto out; goto out;
} }
if (od->dentry) { if (od->filp->f_path.dentry) {
dput(dentry); dput(dentry);
dentry = od->dentry; dentry = od->filp->f_path.dentry;
} }
goto looked_up; goto looked_up;
} }
...@@ -2607,7 +2604,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path, ...@@ -2607,7 +2604,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
error = may_open(&nd->path, acc_mode, open_flag); error = may_open(&nd->path, acc_mode, open_flag);
if (error) if (error)
goto exit; goto exit;
od->mnt = nd->path.mnt; od->filp->f_path.mnt = nd->path.mnt;
filp = finish_open(od, nd->path.dentry, NULL, opened); filp = finish_open(od, nd->path.dentry, NULL, opened);
if (IS_ERR(filp)) { if (IS_ERR(filp)) {
if (filp == ERR_PTR(-EOPENSTALE)) if (filp == ERR_PTR(-EOPENSTALE))
......
...@@ -788,10 +788,10 @@ struct file *finish_open(struct opendata *od, struct dentry *dentry, ...@@ -788,10 +788,10 @@ struct file *finish_open(struct opendata *od, struct dentry *dentry,
struct file *res; struct file *res;
BUG_ON(*opened & FILE_OPENED); /* once it's opened, it's opened */ BUG_ON(*opened & FILE_OPENED); /* once it's opened, it's opened */
mntget(od->mnt); mntget(od->filp->f_path.mnt);
dget(dentry); dget(dentry);
res = do_dentry_open(dentry, od->mnt, od->filp, open, current_cred()); res = do_dentry_open(dentry, od->filp->f_path.mnt, od->filp, open, current_cred());
if (!IS_ERR(res)) if (!IS_ERR(res))
*opened |= FILE_OPENED; *opened |= FILE_OPENED;
...@@ -810,7 +810,7 @@ EXPORT_SYMBOL(finish_open); ...@@ -810,7 +810,7 @@ EXPORT_SYMBOL(finish_open);
*/ */
void finish_no_open(struct opendata *od, struct dentry *dentry) void finish_no_open(struct opendata *od, struct dentry *dentry)
{ {
od->dentry = dentry; od->filp->f_path.dentry = dentry;
} }
EXPORT_SYMBOL(finish_no_open); EXPORT_SYMBOL(finish_no_open);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment