diff options
| author | Mike Marshall <[email protected]> | 2017-01-27 13:33:25 -0500 |
|---|---|---|
| committer | Mike Marshall <[email protected]> | 2017-01-27 13:33:25 -0500 |
| commit | a1f817dc8ed79cdff2b76bc51d545fb9465982be (patch) | |
| tree | 2c92b9b7cdf3b0efb3b9ce33cd6f84ef4d54a1a7 /fs/exec.c | |
| parent | 04102c76a779f1c4cec4f0fb51cacc360117b522 (diff) | |
| parent | 69973b830859bc6529a7a0468ba0d80ee5117826 (diff) | |
Merge tag 'v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into for-next
Linux 4.9
Diffstat (limited to 'fs/exec.c')
| -rw-r--r-- | fs/exec.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/exec.c b/fs/exec.c index 6fcfb3f7b137..4e497b9ee71e 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -191,6 +191,7 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, { struct page *page; int ret; + unsigned int gup_flags = FOLL_FORCE; #ifdef CONFIG_STACK_GROWSUP if (write) { @@ -199,12 +200,16 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, return NULL; } #endif + + if (write) + gup_flags |= FOLL_WRITE; + /* * We are doing an exec(). 'current' is the process * doing the exec and bprm->mm is the new process's mm. */ - ret = get_user_pages_remote(current, bprm->mm, pos, 1, write, - 1, &page, NULL); + ret = get_user_pages_remote(current, bprm->mm, pos, 1, gup_flags, + &page, NULL); if (ret <= 0) return NULL; |