Commit 7b106d88 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds

[PATCH] nommu systems can't support /proc/<pid>/maps

So stub it out, similar to /proc/<pid>/wchan for !CONFIG_KALLSYMS
parent 007d8ed8
...@@ -513,8 +513,9 @@ static int proc_pid_maps_get_line (char *buf, struct vm_area_struct *map) ...@@ -513,8 +513,9 @@ static int proc_pid_maps_get_line (char *buf, struct vm_area_struct *map)
return len; return len;
} }
ssize_t proc_pid_read_maps (struct task_struct *task, struct file * file, char * buf, #ifdef CONFIG_MMU
size_t count, loff_t *ppos) ssize_t proc_pid_read_maps(struct task_struct *task, struct file *file,
char *buf, size_t count, loff_t *ppos)
{ {
struct mm_struct *mm; struct mm_struct *mm;
struct vm_area_struct * map; struct vm_area_struct * map;
...@@ -597,3 +598,4 @@ ssize_t proc_pid_read_maps (struct task_struct *task, struct file * file, char * ...@@ -597,3 +598,4 @@ ssize_t proc_pid_read_maps (struct task_struct *task, struct file * file, char *
out: out:
return retval; return retval;
} }
#endif /* CONFIG_MMU */
...@@ -75,7 +75,9 @@ static struct pid_entry base_stuff[] = { ...@@ -75,7 +75,9 @@ static struct pid_entry base_stuff[] = {
E(PROC_PID_CMDLINE, "cmdline", S_IFREG|S_IRUGO), E(PROC_PID_CMDLINE, "cmdline", S_IFREG|S_IRUGO),
E(PROC_PID_STAT, "stat", S_IFREG|S_IRUGO), E(PROC_PID_STAT, "stat", S_IFREG|S_IRUGO),
E(PROC_PID_STATM, "statm", S_IFREG|S_IRUGO), E(PROC_PID_STATM, "statm", S_IFREG|S_IRUGO),
#ifdef CONFIG_MMU
E(PROC_PID_MAPS, "maps", S_IFREG|S_IRUGO), E(PROC_PID_MAPS, "maps", S_IFREG|S_IRUGO),
#endif
E(PROC_PID_MEM, "mem", S_IFREG|S_IRUSR|S_IWUSR), E(PROC_PID_MEM, "mem", S_IFREG|S_IRUSR|S_IWUSR),
E(PROC_PID_CWD, "cwd", S_IFLNK|S_IRWXUGO), E(PROC_PID_CWD, "cwd", S_IFLNK|S_IRWXUGO),
E(PROC_PID_ROOT, "root", S_IFLNK|S_IRWXUGO), E(PROC_PID_ROOT, "root", S_IFLNK|S_IRWXUGO),
...@@ -98,7 +100,6 @@ static inline int proc_type(struct inode *inode) ...@@ -98,7 +100,6 @@ static inline int proc_type(struct inode *inode)
return PROC_I(inode)->type; return PROC_I(inode)->type;
} }
ssize_t proc_pid_read_maps(struct task_struct*,struct file*,char*,size_t,loff_t*);
int proc_pid_stat(struct task_struct*,char*); int proc_pid_stat(struct task_struct*,char*);
int proc_pid_status(struct task_struct*,char*); int proc_pid_status(struct task_struct*,char*);
int proc_pid_statm(struct task_struct*,char*); int proc_pid_statm(struct task_struct*,char*);
...@@ -321,6 +322,9 @@ static int proc_permission(struct inode *inode, int mask) ...@@ -321,6 +322,9 @@ static int proc_permission(struct inode *inode, int mask)
return proc_check_root(inode); return proc_check_root(inode);
} }
#ifdef CONFIG_MMU
extern ssize_t proc_pid_read_maps(struct task_struct *, struct file *,
char *, size_t, loff_t *);
static ssize_t pid_maps_read(struct file * file, char * buf, static ssize_t pid_maps_read(struct file * file, char * buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
...@@ -335,6 +339,7 @@ static ssize_t pid_maps_read(struct file * file, char * buf, ...@@ -335,6 +339,7 @@ static ssize_t pid_maps_read(struct file * file, char * buf,
static struct file_operations proc_maps_operations = { static struct file_operations proc_maps_operations = {
.read = pid_maps_read, .read = pid_maps_read,
}; };
#endif /* CONFIG_MMU */
extern struct seq_operations mounts_op; extern struct seq_operations mounts_op;
static int mounts_open(struct inode *inode, struct file *file) static int mounts_open(struct inode *inode, struct file *file)
...@@ -1023,10 +1028,11 @@ static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry) ...@@ -1023,10 +1028,11 @@ static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
inode->i_fop = &proc_info_file_operations; inode->i_fop = &proc_info_file_operations;
ei->op.proc_read = proc_pid_statm; ei->op.proc_read = proc_pid_statm;
break; break;
#ifdef CONFIG_MMU
case PROC_PID_MAPS: case PROC_PID_MAPS:
inode->i_fop = &proc_maps_operations; inode->i_fop = &proc_maps_operations;
break; break;
#endif
case PROC_PID_MEM: case PROC_PID_MEM:
inode->i_op = &proc_mem_inode_operations; inode->i_op = &proc_mem_inode_operations;
inode->i_fop = &proc_mem_operations; inode->i_fop = &proc_mem_operations;
......
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