diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-02-05 10:28:58 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-01 23:19:26 -0400 |
commit | 12e3004e464f554e0d57ddd0b4185060275e1f12 (patch) | |
tree | a07d99faf45c189d600e573f07afdf28f7c8c655 | |
parent | c61c70384fad407bfcb066c3fb9271164d630212 (diff) |
untangling process_vm_..., part 3
lift iov one more level out - from process_vm_rw_single_vec to
process_vm_rw_core(). Same story as with the previous commit.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | mm/process_vm_access.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c index 186ec5db6090..40dfb396e8ab 100644 --- a/mm/process_vm_access.c +++ b/mm/process_vm_access.c | |||
@@ -174,7 +174,7 @@ end: | |||
174 | */ | 174 | */ |
175 | static int process_vm_rw_single_vec(unsigned long addr, | 175 | static int process_vm_rw_single_vec(unsigned long addr, |
176 | unsigned long len, | 176 | unsigned long len, |
177 | const struct iovec *lvec, | 177 | const struct iovec **iovp, |
178 | unsigned long lvec_cnt, | 178 | unsigned long lvec_cnt, |
179 | unsigned long *lvec_current, | 179 | unsigned long *lvec_current, |
180 | size_t *lvec_offset, | 180 | size_t *lvec_offset, |
@@ -193,7 +193,6 @@ static int process_vm_rw_single_vec(unsigned long addr, | |||
193 | unsigned long nr_pages_to_copy; | 193 | unsigned long nr_pages_to_copy; |
194 | unsigned long max_pages_per_loop = PVM_MAX_KMALLOC_PAGES | 194 | unsigned long max_pages_per_loop = PVM_MAX_KMALLOC_PAGES |
195 | / sizeof(struct pages *); | 195 | / sizeof(struct pages *); |
196 | const struct iovec *iov = lvec + *lvec_current; | ||
197 | 196 | ||
198 | *bytes_copied = 0; | 197 | *bytes_copied = 0; |
199 | 198 | ||
@@ -208,7 +207,7 @@ static int process_vm_rw_single_vec(unsigned long addr, | |||
208 | 207 | ||
209 | rc = process_vm_rw_pages(task, mm, process_pages, pa, | 208 | rc = process_vm_rw_pages(task, mm, process_pages, pa, |
210 | start_offset, len, | 209 | start_offset, len, |
211 | &iov, lvec_cnt, | 210 | iovp, lvec_cnt, |
212 | lvec_current, lvec_offset, | 211 | lvec_current, lvec_offset, |
213 | vm_write, nr_pages_to_copy, | 212 | vm_write, nr_pages_to_copy, |
214 | &bytes_copied_loop); | 213 | &bytes_copied_loop); |
@@ -319,7 +318,7 @@ static ssize_t process_vm_rw_core(pid_t pid, const struct iovec *lvec, | |||
319 | for (i = 0; i < riovcnt && iov_l_curr_idx < liovcnt; i++) { | 318 | for (i = 0; i < riovcnt && iov_l_curr_idx < liovcnt; i++) { |
320 | rc = process_vm_rw_single_vec( | 319 | rc = process_vm_rw_single_vec( |
321 | (unsigned long)rvec[i].iov_base, rvec[i].iov_len, | 320 | (unsigned long)rvec[i].iov_base, rvec[i].iov_len, |
322 | lvec, liovcnt, &iov_l_curr_idx, &iov_l_curr_offset, | 321 | &lvec, liovcnt, &iov_l_curr_idx, &iov_l_curr_offset, |
323 | process_pages, mm, task, vm_write, &bytes_copied_loop); | 322 | process_pages, mm, task, vm_write, &bytes_copied_loop); |
324 | bytes_copied += bytes_copied_loop; | 323 | bytes_copied += bytes_copied_loop; |
325 | if (rc != 0) { | 324 | if (rc != 0) { |