diff options
Diffstat (limited to 'fs/proc/task_mmu.c')
| -rw-r--r-- | fs/proc/task_mmu.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 7415eeb7cc3a..e2b8e769f510 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
| @@ -75,40 +75,6 @@ int task_statm(struct mm_struct *mm, int *shared, int *text, | |||
| 75 | return mm->total_vm; | 75 | return mm->total_vm; |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | int proc_exe_link(struct inode *inode, struct path *path) | ||
| 79 | { | ||
| 80 | struct vm_area_struct * vma; | ||
| 81 | int result = -ENOENT; | ||
| 82 | struct task_struct *task = get_proc_task(inode); | ||
| 83 | struct mm_struct * mm = NULL; | ||
| 84 | |||
| 85 | if (task) { | ||
| 86 | mm = get_task_mm(task); | ||
| 87 | put_task_struct(task); | ||
| 88 | } | ||
| 89 | if (!mm) | ||
| 90 | goto out; | ||
| 91 | down_read(&mm->mmap_sem); | ||
| 92 | |||
| 93 | vma = mm->mmap; | ||
| 94 | while (vma) { | ||
| 95 | if ((vma->vm_flags & VM_EXECUTABLE) && vma->vm_file) | ||
| 96 | break; | ||
| 97 | vma = vma->vm_next; | ||
| 98 | } | ||
| 99 | |||
| 100 | if (vma) { | ||
| 101 | *path = vma->vm_file->f_path; | ||
| 102 | path_get(&vma->vm_file->f_path); | ||
| 103 | result = 0; | ||
| 104 | } | ||
| 105 | |||
| 106 | up_read(&mm->mmap_sem); | ||
| 107 | mmput(mm); | ||
| 108 | out: | ||
| 109 | return result; | ||
| 110 | } | ||
| 111 | |||
| 112 | static void pad_len_spaces(struct seq_file *m, int len) | 78 | static void pad_len_spaces(struct seq_file *m, int len) |
| 113 | { | 79 | { |
| 114 | len = 25 + sizeof(void*) * 6 - len; | 80 | len = 25 + sizeof(void*) * 6 - len; |
