diff options
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/file.h> | 26 | #include <linux/file.h> |
27 | #include <linux/fdtable.h> | 27 | #include <linux/fdtable.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/vmacache.h> | ||
29 | #include <linux/stat.h> | 30 | #include <linux/stat.h> |
30 | #include <linux/fcntl.h> | 31 | #include <linux/fcntl.h> |
31 | #include <linux/swap.h> | 32 | #include <linux/swap.h> |
@@ -822,7 +823,7 @@ EXPORT_SYMBOL(read_code); | |||
822 | static int exec_mmap(struct mm_struct *mm) | 823 | static int exec_mmap(struct mm_struct *mm) |
823 | { | 824 | { |
824 | struct task_struct *tsk; | 825 | struct task_struct *tsk; |
825 | struct mm_struct * old_mm, *active_mm; | 826 | struct mm_struct *old_mm, *active_mm; |
826 | 827 | ||
827 | /* Notify parent that we're no longer interested in the old VM */ | 828 | /* Notify parent that we're no longer interested in the old VM */ |
828 | tsk = current; | 829 | tsk = current; |
@@ -848,6 +849,8 @@ static int exec_mmap(struct mm_struct *mm) | |||
848 | tsk->mm = mm; | 849 | tsk->mm = mm; |
849 | tsk->active_mm = mm; | 850 | tsk->active_mm = mm; |
850 | activate_mm(active_mm, mm); | 851 | activate_mm(active_mm, mm); |
852 | tsk->mm->vmacache_seqnum = 0; | ||
853 | vmacache_flush(tsk); | ||
851 | task_unlock(tsk); | 854 | task_unlock(tsk); |
852 | if (old_mm) { | 855 | if (old_mm) { |
853 | up_read(&old_mm->mmap_sem); | 856 | up_read(&old_mm->mmap_sem); |