mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-19 01:26:22 +00:00
108 lines
3.5 KiB
Text
108 lines
3.5 KiB
Text
fs, proc: Make proc_get_link to use dentry instead of inode
|
|
|
|
This patch prepares the ground for the next "map_files"
|
|
patch which needs a name of a link file to analyse.
|
|
|
|
So instead of squashing this change into one big
|
|
patch the separate one is done.
|
|
|
|
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>
|
|
CC: Andrew Morton <akpm@linux-foundation.org>
|
|
---
|
|
fs/proc/base.c | 20 ++++++++++----------
|
|
include/linux/proc_fs.h | 2 +-
|
|
2 files changed, 11 insertions(+), 11 deletions(-)
|
|
|
|
Index: linux-2.6.git/fs/proc/base.c
|
|
===================================================================
|
|
--- linux-2.6.git.orig/fs/proc/base.c
|
|
+++ linux-2.6.git/fs/proc/base.c
|
|
@@ -165,9 +165,9 @@ static int get_task_root(struct task_str
|
|
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) {
|
|
@@ -182,9 +182,9 @@ static int proc_cwd_link(struct inode *i
|
|
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) {
|
|
@@ -1580,13 +1580,13 @@ static const struct file_operations proc
|
|
.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);
|
|
@@ -1616,7 +1616,7 @@ static void *proc_pid_follow_link(struct
|
|
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);
|
|
}
|
|
@@ -1655,7 +1655,7 @@ static int proc_pid_readlink(struct dent
|
|
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;
|
|
|
|
@@ -1959,9 +1959,9 @@ out_task:
|
|
return rc;
|
|
}
|
|
|
|
-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)
|
|
Index: linux-2.6.git/include/linux/proc_fs.h
|
|
===================================================================
|
|
--- linux-2.6.git.orig/include/linux/proc_fs.h
|
|
+++ linux-2.6.git/include/linux/proc_fs.h
|
|
@@ -253,7 +253,7 @@ extern const struct proc_ns_operations u
|
|
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,
|