Skip to content

Commit

Permalink
procfs: make proc_get_link to use dentry instead of inode
Browse files Browse the repository at this point in the history
Prepare the ground for the next "map_files" patch which needs a name of a
link file to analyse.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Vasiliy Kulikov <segoon@openwall.com>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Cyrill Gorcunov authored and Linus Torvalds committed Jan 11, 2012
1 parent 5e6292c commit 7773fbc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
20 changes: 10 additions & 10 deletions fs/proc/base.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,9 @@ static int get_task_root(struct task_struct *task, struct path *root)
return result;
}

static int proc_cwd_link(struct inode *inode, struct path *path)
static int proc_cwd_link(struct dentry *dentry, struct path *path)
{
struct task_struct *task = get_proc_task(inode);
struct task_struct *task = get_proc_task(dentry->d_inode);
int result = -ENOENT;

if (task) {
Expand All @@ -183,9 +183,9 @@ static int proc_cwd_link(struct inode *inode, struct path *path)
return result;
}

static int proc_root_link(struct inode *inode, struct path *path)
static int proc_root_link(struct dentry *dentry, struct path *path)
{
struct task_struct *task = get_proc_task(inode);
struct task_struct *task = get_proc_task(dentry->d_inode);
int result = -ENOENT;

if (task) {
Expand Down Expand Up @@ -1456,13 +1456,13 @@ static const struct file_operations proc_pid_set_comm_operations = {
.release = single_release,
};

static int proc_exe_link(struct inode *inode, struct path *exe_path)
static int proc_exe_link(struct dentry *dentry, struct path *exe_path)
{
struct task_struct *task;
struct mm_struct *mm;
struct file *exe_file;

task = get_proc_task(inode);
task = get_proc_task(dentry->d_inode);
if (!task)
return -ENOENT;
mm = get_task_mm(task);
Expand Down Expand Up @@ -1492,7 +1492,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
if (!proc_fd_access_allowed(inode))
goto out;

error = PROC_I(inode)->op.proc_get_link(inode, &nd->path);
error = PROC_I(inode)->op.proc_get_link(dentry, &nd->path);
out:
return ERR_PTR(error);
}
Expand Down Expand Up @@ -1531,7 +1531,7 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
if (!proc_fd_access_allowed(inode))
goto out;

error = PROC_I(inode)->op.proc_get_link(inode, &path);
error = PROC_I(inode)->op.proc_get_link(dentry, &path);
if (error)
goto out;

Expand Down Expand Up @@ -1823,9 +1823,9 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
return -ENOENT;
}

static int proc_fd_link(struct inode *inode, struct path *path)
static int proc_fd_link(struct dentry *dentry, struct path *path)
{
return proc_fd_info(inode, path, NULL);
return proc_fd_info(dentry->d_inode, path, NULL);
}

static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd)
Expand Down
2 changes: 1 addition & 1 deletion include/linux/proc_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ extern const struct proc_ns_operations utsns_operations;
extern const struct proc_ns_operations ipcns_operations;

union proc_op {
int (*proc_get_link)(struct inode *, struct path *);
int (*proc_get_link)(struct dentry *, struct path *);
int (*proc_read)(struct task_struct *task, char *page);
int (*proc_show)(struct seq_file *m,
struct pid_namespace *ns, struct pid *pid,
Expand Down

0 comments on commit 7773fbc

Please sign in to comment.