diff options
Diffstat (limited to 'arch')
27 files changed, 63 insertions, 63 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 63e77e3944ce..9eb090582cf1 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -449,7 +449,7 @@ osf_ufs_mount(char *dirname, struct ufs_args __user *args, int flags) | |||
449 | { | 449 | { |
450 | int retval; | 450 | int retval; |
451 | struct cdfs_args tmp; | 451 | struct cdfs_args tmp; |
452 | char *devname; | 452 | struct filename *devname; |
453 | 453 | ||
454 | retval = -EFAULT; | 454 | retval = -EFAULT; |
455 | if (copy_from_user(&tmp, args, sizeof(tmp))) | 455 | if (copy_from_user(&tmp, args, sizeof(tmp))) |
@@ -458,7 +458,7 @@ osf_ufs_mount(char *dirname, struct ufs_args __user *args, int flags) | |||
458 | retval = PTR_ERR(devname); | 458 | retval = PTR_ERR(devname); |
459 | if (IS_ERR(devname)) | 459 | if (IS_ERR(devname)) |
460 | goto out; | 460 | goto out; |
461 | retval = do_mount(devname, dirname, "ext2", flags, NULL); | 461 | retval = do_mount(devname->name, dirname, "ext2", flags, NULL); |
462 | putname(devname); | 462 | putname(devname); |
463 | out: | 463 | out: |
464 | return retval; | 464 | return retval; |
@@ -469,7 +469,7 @@ osf_cdfs_mount(char *dirname, struct cdfs_args __user *args, int flags) | |||
469 | { | 469 | { |
470 | int retval; | 470 | int retval; |
471 | struct cdfs_args tmp; | 471 | struct cdfs_args tmp; |
472 | char *devname; | 472 | struct filename *devname; |
473 | 473 | ||
474 | retval = -EFAULT; | 474 | retval = -EFAULT; |
475 | if (copy_from_user(&tmp, args, sizeof(tmp))) | 475 | if (copy_from_user(&tmp, args, sizeof(tmp))) |
@@ -478,7 +478,7 @@ osf_cdfs_mount(char *dirname, struct cdfs_args __user *args, int flags) | |||
478 | retval = PTR_ERR(devname); | 478 | retval = PTR_ERR(devname); |
479 | if (IS_ERR(devname)) | 479 | if (IS_ERR(devname)) |
480 | goto out; | 480 | goto out; |
481 | retval = do_mount(devname, dirname, "iso9660", flags, NULL); | 481 | retval = do_mount(devname->name, dirname, "iso9660", flags, NULL); |
482 | putname(devname); | 482 | putname(devname); |
483 | out: | 483 | out: |
484 | return retval; | 484 | return retval; |
@@ -499,7 +499,7 @@ SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, const char __user *, path, | |||
499 | int, flag, void __user *, data) | 499 | int, flag, void __user *, data) |
500 | { | 500 | { |
501 | int retval; | 501 | int retval; |
502 | char *name; | 502 | struct filename *name; |
503 | 503 | ||
504 | name = getname(path); | 504 | name = getname(path); |
505 | retval = PTR_ERR(name); | 505 | retval = PTR_ERR(name); |
@@ -507,13 +507,13 @@ SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, const char __user *, path, | |||
507 | goto out; | 507 | goto out; |
508 | switch (typenr) { | 508 | switch (typenr) { |
509 | case 1: | 509 | case 1: |
510 | retval = osf_ufs_mount(name, data, flag); | 510 | retval = osf_ufs_mount(name->name, data, flag); |
511 | break; | 511 | break; |
512 | case 6: | 512 | case 6: |
513 | retval = osf_cdfs_mount(name, data, flag); | 513 | retval = osf_cdfs_mount(name->name, data, flag); |
514 | break; | 514 | break; |
515 | case 9: | 515 | case 9: |
516 | retval = osf_procfs_mount(name, data, flag); | 516 | retval = osf_procfs_mount(name->name, data, flag); |
517 | break; | 517 | break; |
518 | default: | 518 | default: |
519 | retval = -EINVAL; | 519 | retval = -EINVAL; |
diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c index 905fcfb0ddd0..b120df37de35 100644 --- a/arch/arm64/kernel/sys.c +++ b/arch/arm64/kernel/sys.c | |||
@@ -50,13 +50,13 @@ asmlinkage long sys_execve(const char __user *filenamei, | |||
50 | struct pt_regs *regs) | 50 | struct pt_regs *regs) |
51 | { | 51 | { |
52 | long error; | 52 | long error; |
53 | char * filename; | 53 | struct filename *filename; |
54 | 54 | ||
55 | filename = getname(filenamei); | 55 | filename = getname(filenamei); |
56 | error = PTR_ERR(filename); | 56 | error = PTR_ERR(filename); |
57 | if (IS_ERR(filename)) | 57 | if (IS_ERR(filename)) |
58 | goto out; | 58 | goto out; |
59 | error = do_execve(filename, argv, envp, regs); | 59 | error = do_execve(filename->name, argv, envp, regs); |
60 | putname(filename); | 60 | putname(filename); |
61 | out: | 61 | out: |
62 | return error; | 62 | return error; |
diff --git a/arch/arm64/kernel/sys_compat.c b/arch/arm64/kernel/sys_compat.c index 93f10e27dc79..e521087cb0c4 100644 --- a/arch/arm64/kernel/sys_compat.c +++ b/arch/arm64/kernel/sys_compat.c | |||
@@ -56,14 +56,14 @@ asmlinkage int compat_sys_execve(const char __user *filenamei, | |||
56 | struct pt_regs *regs) | 56 | struct pt_regs *regs) |
57 | { | 57 | { |
58 | int error; | 58 | int error; |
59 | char * filename; | 59 | struct filename *filename; |
60 | 60 | ||
61 | filename = getname(filenamei); | 61 | filename = getname(filenamei); |
62 | error = PTR_ERR(filename); | 62 | error = PTR_ERR(filename); |
63 | if (IS_ERR(filename)) | 63 | if (IS_ERR(filename)) |
64 | goto out; | 64 | goto out; |
65 | error = compat_do_execve(filename, compat_ptr(argv), compat_ptr(envp), | 65 | error = compat_do_execve(filename->name, compat_ptr(argv), |
66 | regs); | 66 | compat_ptr(envp), regs); |
67 | putname(filename); | 67 | putname(filename); |
68 | out: | 68 | out: |
69 | return error; | 69 | return error; |
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c index 92c5af98a6f7..1bb0a8abd79b 100644 --- a/arch/avr32/kernel/process.c +++ b/arch/avr32/kernel/process.c | |||
@@ -388,14 +388,14 @@ asmlinkage int sys_execve(const char __user *ufilename, | |||
388 | struct pt_regs *regs) | 388 | struct pt_regs *regs) |
389 | { | 389 | { |
390 | int error; | 390 | int error; |
391 | char *filename; | 391 | struct filename *filename; |
392 | 392 | ||
393 | filename = getname(ufilename); | 393 | filename = getname(ufilename); |
394 | error = PTR_ERR(filename); | 394 | error = PTR_ERR(filename); |
395 | if (IS_ERR(filename)) | 395 | if (IS_ERR(filename)) |
396 | goto out; | 396 | goto out; |
397 | 397 | ||
398 | error = do_execve(filename, uargv, uenvp, regs); | 398 | error = do_execve(filename->name, uargv, uenvp, regs); |
399 | putname(filename); | 399 | putname(filename); |
400 | 400 | ||
401 | out: | 401 | out: |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 62bcea7dcc6d..bb1cc721fcf7 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
@@ -213,14 +213,14 @@ asmlinkage int sys_execve(const char __user *name, | |||
213 | const char __user *const __user *envp) | 213 | const char __user *const __user *envp) |
214 | { | 214 | { |
215 | int error; | 215 | int error; |
216 | char *filename; | 216 | struct filename *filename; |
217 | struct pt_regs *regs = (struct pt_regs *)((&name) + 6); | 217 | struct pt_regs *regs = (struct pt_regs *)((&name) + 6); |
218 | 218 | ||
219 | filename = getname(name); | 219 | filename = getname(name); |
220 | error = PTR_ERR(filename); | 220 | error = PTR_ERR(filename); |
221 | if (IS_ERR(filename)) | 221 | if (IS_ERR(filename)) |
222 | return error; | 222 | return error; |
223 | error = do_execve(filename, argv, envp, regs); | 223 | error = do_execve(filename->name, argv, envp, regs); |
224 | putname(filename); | 224 | putname(filename); |
225 | return error; | 225 | return error; |
226 | } | 226 | } |
diff --git a/arch/cris/arch-v10/kernel/process.c b/arch/cris/arch-v10/kernel/process.c index bee8df43c201..15ac7150371f 100644 --- a/arch/cris/arch-v10/kernel/process.c +++ b/arch/cris/arch-v10/kernel/process.c | |||
@@ -212,14 +212,14 @@ asmlinkage int sys_execve(const char *fname, | |||
212 | struct pt_regs *regs) | 212 | struct pt_regs *regs) |
213 | { | 213 | { |
214 | int error; | 214 | int error; |
215 | char *filename; | 215 | struct filename *filename; |
216 | 216 | ||
217 | filename = getname(fname); | 217 | filename = getname(fname); |
218 | error = PTR_ERR(filename); | 218 | error = PTR_ERR(filename); |
219 | 219 | ||
220 | if (IS_ERR(filename)) | 220 | if (IS_ERR(filename)) |
221 | goto out; | 221 | goto out; |
222 | error = do_execve(filename, argv, envp, regs); | 222 | error = do_execve(filename->name, argv, envp, regs); |
223 | putname(filename); | 223 | putname(filename); |
224 | out: | 224 | out: |
225 | return error; | 225 | return error; |
diff --git a/arch/cris/arch-v32/kernel/process.c b/arch/cris/arch-v32/kernel/process.c index 0570e8ce603d..4e9992246359 100644 --- a/arch/cris/arch-v32/kernel/process.c +++ b/arch/cris/arch-v32/kernel/process.c | |||
@@ -224,7 +224,7 @@ sys_execve(const char *fname, | |||
224 | struct pt_regs *regs) | 224 | struct pt_regs *regs) |
225 | { | 225 | { |
226 | int error; | 226 | int error; |
227 | char *filename; | 227 | struct filename *filename; |
228 | 228 | ||
229 | filename = getname(fname); | 229 | filename = getname(fname); |
230 | error = PTR_ERR(filename); | 230 | error = PTR_ERR(filename); |
@@ -232,7 +232,7 @@ sys_execve(const char *fname, | |||
232 | if (IS_ERR(filename)) | 232 | if (IS_ERR(filename)) |
233 | goto out; | 233 | goto out; |
234 | 234 | ||
235 | error = do_execve(filename, argv, envp, regs); | 235 | error = do_execve(filename->name, argv, envp, regs); |
236 | putname(filename); | 236 | putname(filename); |
237 | out: | 237 | out: |
238 | return error; | 238 | return error; |
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index f153ed1a4c08..e8dc1393a13a 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
@@ -217,14 +217,14 @@ asmlinkage int sys_execve(const char *name, | |||
217 | int dummy, ...) | 217 | int dummy, ...) |
218 | { | 218 | { |
219 | int error; | 219 | int error; |
220 | char * filename; | 220 | struct filename *filename; |
221 | struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy-4); | 221 | struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy-4); |
222 | 222 | ||
223 | filename = getname(name); | 223 | filename = getname(name); |
224 | error = PTR_ERR(filename); | 224 | error = PTR_ERR(filename); |
225 | if (IS_ERR(filename)) | 225 | if (IS_ERR(filename)) |
226 | return error; | 226 | return error; |
227 | error = do_execve(filename, argv, envp, regs); | 227 | error = do_execve(filename->name, argv, envp, regs); |
228 | putname(filename); | 228 | putname(filename); |
229 | return error; | 229 | return error; |
230 | } | 230 | } |
diff --git a/arch/hexagon/kernel/syscall.c b/arch/hexagon/kernel/syscall.c index 553cd60ee659..25a9bfe3445d 100644 --- a/arch/hexagon/kernel/syscall.c +++ b/arch/hexagon/kernel/syscall.c | |||
@@ -40,7 +40,7 @@ asmlinkage int sys_execve(char __user *ufilename, | |||
40 | const char __user *const __user *envp) | 40 | const char __user *const __user *envp) |
41 | { | 41 | { |
42 | struct pt_regs *pregs = current_thread_info()->regs; | 42 | struct pt_regs *pregs = current_thread_info()->regs; |
43 | char *filename; | 43 | struct filename *filename; |
44 | int retval; | 44 | int retval; |
45 | 45 | ||
46 | filename = getname(ufilename); | 46 | filename = getname(ufilename); |
@@ -48,7 +48,7 @@ asmlinkage int sys_execve(char __user *ufilename, | |||
48 | if (IS_ERR(filename)) | 48 | if (IS_ERR(filename)) |
49 | return retval; | 49 | return retval; |
50 | 50 | ||
51 | retval = do_execve(filename, argv, envp, pregs); | 51 | retval = do_execve(filename->name, argv, envp, pregs); |
52 | putname(filename); | 52 | putname(filename); |
53 | 53 | ||
54 | return retval; | 54 | return retval; |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index ee31fe9b310e..35e106f2ed13 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -614,14 +614,14 @@ sys_execve (const char __user *filename, | |||
614 | const char __user *const __user *envp, | 614 | const char __user *const __user *envp, |
615 | struct pt_regs *regs) | 615 | struct pt_regs *regs) |
616 | { | 616 | { |
617 | char *fname; | 617 | struct filename *fname; |
618 | int error; | 618 | int error; |
619 | 619 | ||
620 | fname = getname(filename); | 620 | fname = getname(filename); |
621 | error = PTR_ERR(fname); | 621 | error = PTR_ERR(fname); |
622 | if (IS_ERR(fname)) | 622 | if (IS_ERR(fname)) |
623 | goto out; | 623 | goto out; |
624 | error = do_execve(fname, argv, envp, regs); | 624 | error = do_execve(fname->name, argv, envp, regs); |
625 | putname(fname); | 625 | putname(fname); |
626 | out: | 626 | out: |
627 | return error; | 627 | return error; |
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index 384e63f3a4c4..e7366276ef30 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c | |||
@@ -296,14 +296,14 @@ asmlinkage int sys_execve(const char __user *ufilename, | |||
296 | unsigned long r6, struct pt_regs regs) | 296 | unsigned long r6, struct pt_regs regs) |
297 | { | 297 | { |
298 | int error; | 298 | int error; |
299 | char *filename; | 299 | struct filename *filename; |
300 | 300 | ||
301 | filename = getname(ufilename); | 301 | filename = getname(ufilename); |
302 | error = PTR_ERR(filename); | 302 | error = PTR_ERR(filename); |
303 | if (IS_ERR(filename)) | 303 | if (IS_ERR(filename)) |
304 | goto out; | 304 | goto out; |
305 | 305 | ||
306 | error = do_execve(filename, uargv, uenvp, ®s); | 306 | error = do_execve(filename->name, uargv, uenvp, ®s); |
307 | putname(filename); | 307 | putname(filename); |
308 | out: | 308 | out: |
309 | return error; | 309 | return error; |
diff --git a/arch/microblaze/kernel/sys_microblaze.c b/arch/microblaze/kernel/sys_microblaze.c index e5b154f24f85..404c0f24bd41 100644 --- a/arch/microblaze/kernel/sys_microblaze.c +++ b/arch/microblaze/kernel/sys_microblaze.c | |||
@@ -54,13 +54,13 @@ asmlinkage long microblaze_execve(const char __user *filenamei, | |||
54 | struct pt_regs *regs) | 54 | struct pt_regs *regs) |
55 | { | 55 | { |
56 | int error; | 56 | int error; |
57 | char *filename; | 57 | struct filename *filename; |
58 | 58 | ||
59 | filename = getname(filenamei); | 59 | filename = getname(filenamei); |
60 | error = PTR_ERR(filename); | 60 | error = PTR_ERR(filename); |
61 | if (IS_ERR(filename)) | 61 | if (IS_ERR(filename)) |
62 | goto out; | 62 | goto out; |
63 | error = do_execve(filename, argv, envp, regs); | 63 | error = do_execve(filename->name, argv, envp, regs); |
64 | putname(filename); | 64 | putname(filename); |
65 | out: | 65 | out: |
66 | return error; | 66 | return error; |
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 922a554cd108..3a21acedf882 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -83,13 +83,13 @@ out: | |||
83 | asmlinkage int sys32_execve(nabi_no_regargs struct pt_regs regs) | 83 | asmlinkage int sys32_execve(nabi_no_regargs struct pt_regs regs) |
84 | { | 84 | { |
85 | int error; | 85 | int error; |
86 | char * filename; | 86 | struct filename *filename; |
87 | 87 | ||
88 | filename = getname(compat_ptr(regs.regs[4])); | 88 | filename = getname(compat_ptr(regs.regs[4])); |
89 | error = PTR_ERR(filename); | 89 | error = PTR_ERR(filename); |
90 | if (IS_ERR(filename)) | 90 | if (IS_ERR(filename)) |
91 | goto out; | 91 | goto out; |
92 | error = compat_do_execve(filename, compat_ptr(regs.regs[5]), | 92 | error = compat_do_execve(filename->name, compat_ptr(regs.regs[5]), |
93 | compat_ptr(regs.regs[6]), ®s); | 93 | compat_ptr(regs.regs[6]), ®s); |
94 | putname(filename); | 94 | putname(filename); |
95 | 95 | ||
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index b08220c82113..2bd561bc05ae 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
@@ -133,13 +133,13 @@ _sys_clone(nabi_no_regargs struct pt_regs regs) | |||
133 | asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs) | 133 | asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs) |
134 | { | 134 | { |
135 | int error; | 135 | int error; |
136 | char * filename; | 136 | struct filename *filename; |
137 | 137 | ||
138 | filename = getname((const char __user *) (long)regs.regs[4]); | 138 | filename = getname((const char __user *) (long)regs.regs[4]); |
139 | error = PTR_ERR(filename); | 139 | error = PTR_ERR(filename); |
140 | if (IS_ERR(filename)) | 140 | if (IS_ERR(filename)) |
141 | goto out; | 141 | goto out; |
142 | error = do_execve(filename, | 142 | error = do_execve(filename->name, |
143 | (const char __user *const __user *) (long)regs.regs[5], | 143 | (const char __user *const __user *) (long)regs.regs[5], |
144 | (const char __user *const __user *) (long)regs.regs[6], | 144 | (const char __user *const __user *) (long)regs.regs[6], |
145 | ®s); | 145 | ®s); |
diff --git a/arch/openrisc/kernel/process.c b/arch/openrisc/kernel/process.c index 55210f37d1a3..c35f3ab1a8d3 100644 --- a/arch/openrisc/kernel/process.c +++ b/arch/openrisc/kernel/process.c | |||
@@ -271,7 +271,7 @@ asmlinkage long _sys_execve(const char __user *name, | |||
271 | struct pt_regs *regs) | 271 | struct pt_regs *regs) |
272 | { | 272 | { |
273 | int error; | 273 | int error; |
274 | char *filename; | 274 | struct filename *filename; |
275 | 275 | ||
276 | filename = getname(name); | 276 | filename = getname(name); |
277 | error = PTR_ERR(filename); | 277 | error = PTR_ERR(filename); |
@@ -279,7 +279,7 @@ asmlinkage long _sys_execve(const char __user *name, | |||
279 | if (IS_ERR(filename)) | 279 | if (IS_ERR(filename)) |
280 | goto out; | 280 | goto out; |
281 | 281 | ||
282 | error = do_execve(filename, argv, envp, regs); | 282 | error = do_execve(filename->name, argv, envp, regs); |
283 | putname(filename); | 283 | putname(filename); |
284 | 284 | ||
285 | out: | 285 | out: |
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c index 6785de7bd2a0..a0760b87fd4e 100644 --- a/arch/parisc/hpux/fs.c +++ b/arch/parisc/hpux/fs.c | |||
@@ -34,14 +34,14 @@ | |||
34 | int hpux_execve(struct pt_regs *regs) | 34 | int hpux_execve(struct pt_regs *regs) |
35 | { | 35 | { |
36 | int error; | 36 | int error; |
37 | char *filename; | 37 | struct filename *filename; |
38 | 38 | ||
39 | filename = getname((const char __user *) regs->gr[26]); | 39 | filename = getname((const char __user *) regs->gr[26]); |
40 | error = PTR_ERR(filename); | 40 | error = PTR_ERR(filename); |
41 | if (IS_ERR(filename)) | 41 | if (IS_ERR(filename)) |
42 | goto out; | 42 | goto out; |
43 | 43 | ||
44 | error = do_execve(filename, | 44 | error = do_execve(filename->name, |
45 | (const char __user *const __user *) regs->gr[25], | 45 | (const char __user *const __user *) regs->gr[25], |
46 | (const char __user *const __user *) regs->gr[24], | 46 | (const char __user *const __user *) regs->gr[24], |
47 | regs); | 47 | regs); |
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index 8c6b6b6561f0..cbc37216bf90 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c | |||
@@ -342,13 +342,13 @@ unsigned long thread_saved_pc(struct task_struct *t) | |||
342 | asmlinkage int sys_execve(struct pt_regs *regs) | 342 | asmlinkage int sys_execve(struct pt_regs *regs) |
343 | { | 343 | { |
344 | int error; | 344 | int error; |
345 | char *filename; | 345 | struct filename *filename; |
346 | 346 | ||
347 | filename = getname((const char __user *) regs->gr[26]); | 347 | filename = getname((const char __user *) regs->gr[26]); |
348 | error = PTR_ERR(filename); | 348 | error = PTR_ERR(filename); |
349 | if (IS_ERR(filename)) | 349 | if (IS_ERR(filename)) |
350 | goto out; | 350 | goto out; |
351 | error = do_execve(filename, | 351 | error = do_execve(filename->name, |
352 | (const char __user *const __user *) regs->gr[25], | 352 | (const char __user *const __user *) regs->gr[25], |
353 | (const char __user *const __user *) regs->gr[24], | 353 | (const char __user *const __user *) regs->gr[24], |
354 | regs); | 354 | regs); |
diff --git a/arch/parisc/kernel/sys_parisc32.c b/arch/parisc/kernel/sys_parisc32.c index dc9a62462323..bf5b93a885d3 100644 --- a/arch/parisc/kernel/sys_parisc32.c +++ b/arch/parisc/kernel/sys_parisc32.c | |||
@@ -60,14 +60,14 @@ | |||
60 | asmlinkage int sys32_execve(struct pt_regs *regs) | 60 | asmlinkage int sys32_execve(struct pt_regs *regs) |
61 | { | 61 | { |
62 | int error; | 62 | int error; |
63 | char *filename; | 63 | struct filename *filename; |
64 | 64 | ||
65 | DBG(("sys32_execve(%p) r26 = 0x%lx\n", regs, regs->gr[26])); | 65 | DBG(("sys32_execve(%p) r26 = 0x%lx\n", regs, regs->gr[26])); |
66 | filename = getname((const char __user *) regs->gr[26]); | 66 | filename = getname((const char __user *) regs->gr[26]); |
67 | error = PTR_ERR(filename); | 67 | error = PTR_ERR(filename); |
68 | if (IS_ERR(filename)) | 68 | if (IS_ERR(filename)) |
69 | goto out; | 69 | goto out; |
70 | error = compat_do_execve(filename, compat_ptr(regs->gr[25]), | 70 | error = compat_do_execve(filename->name, compat_ptr(regs->gr[25]), |
71 | compat_ptr(regs->gr[24]), regs); | 71 | compat_ptr(regs->gr[24]), regs); |
72 | putname(filename); | 72 | putname(filename); |
73 | out: | 73 | out: |
diff --git a/arch/score/kernel/sys_score.c b/arch/score/kernel/sys_score.c index 21e867974066..d45cf00a3351 100644 --- a/arch/score/kernel/sys_score.c +++ b/arch/score/kernel/sys_score.c | |||
@@ -92,14 +92,14 @@ asmlinkage long | |||
92 | score_execve(struct pt_regs *regs) | 92 | score_execve(struct pt_regs *regs) |
93 | { | 93 | { |
94 | int error; | 94 | int error; |
95 | char *filename; | 95 | struct filename *filename; |
96 | 96 | ||
97 | filename = getname((char __user*)regs->regs[4]); | 97 | filename = getname((char __user*)regs->regs[4]); |
98 | error = PTR_ERR(filename); | 98 | error = PTR_ERR(filename); |
99 | if (IS_ERR(filename)) | 99 | if (IS_ERR(filename)) |
100 | return error; | 100 | return error; |
101 | 101 | ||
102 | error = do_execve(filename, | 102 | error = do_execve(filename->name, |
103 | (const char __user *const __user *)regs->regs[5], | 103 | (const char __user *const __user *)regs->regs[5], |
104 | (const char __user *const __user *)regs->regs[6], | 104 | (const char __user *const __user *)regs->regs[6], |
105 | regs); | 105 | regs); |
diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c index 59521e8a164d..ba7345f37bc9 100644 --- a/arch/sh/kernel/process_32.c +++ b/arch/sh/kernel/process_32.c | |||
@@ -298,14 +298,14 @@ asmlinkage int sys_execve(const char __user *ufilename, | |||
298 | { | 298 | { |
299 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); | 299 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); |
300 | int error; | 300 | int error; |
301 | char *filename; | 301 | struct filename *filename; |
302 | 302 | ||
303 | filename = getname(ufilename); | 303 | filename = getname(ufilename); |
304 | error = PTR_ERR(filename); | 304 | error = PTR_ERR(filename); |
305 | if (IS_ERR(filename)) | 305 | if (IS_ERR(filename)) |
306 | goto out; | 306 | goto out; |
307 | 307 | ||
308 | error = do_execve(filename, uargv, uenvp, regs); | 308 | error = do_execve(filename->name, uargv, uenvp, regs); |
309 | putname(filename); | 309 | putname(filename); |
310 | out: | 310 | out: |
311 | return error; | 311 | return error; |
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index 602545b12a86..98a709f0c3c4 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c | |||
@@ -491,14 +491,14 @@ asmlinkage int sys_execve(const char *ufilename, char **uargv, | |||
491 | struct pt_regs *pregs) | 491 | struct pt_regs *pregs) |
492 | { | 492 | { |
493 | int error; | 493 | int error; |
494 | char *filename; | 494 | struct filename *filename; |
495 | 495 | ||
496 | filename = getname((char __user *)ufilename); | 496 | filename = getname((char __user *)ufilename); |
497 | error = PTR_ERR(filename); | 497 | error = PTR_ERR(filename); |
498 | if (IS_ERR(filename)) | 498 | if (IS_ERR(filename)) |
499 | goto out; | 499 | goto out; |
500 | 500 | ||
501 | error = do_execve(filename, | 501 | error = do_execve(filename->name, |
502 | (const char __user *const __user *)uargv, | 502 | (const char __user *const __user *)uargv, |
503 | (const char __user *const __user *)uenvp, | 503 | (const char __user *const __user *)uenvp, |
504 | pregs); | 504 | pregs); |
diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index 14006d8aca28..487bffb36f5e 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c | |||
@@ -482,7 +482,7 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs) | |||
482 | asmlinkage int sparc_execve(struct pt_regs *regs) | 482 | asmlinkage int sparc_execve(struct pt_regs *regs) |
483 | { | 483 | { |
484 | int error, base = 0; | 484 | int error, base = 0; |
485 | char *filename; | 485 | struct filename *filename; |
486 | 486 | ||
487 | /* Check for indirect call. */ | 487 | /* Check for indirect call. */ |
488 | if(regs->u_regs[UREG_G1] == 0) | 488 | if(regs->u_regs[UREG_G1] == 0) |
@@ -492,7 +492,7 @@ asmlinkage int sparc_execve(struct pt_regs *regs) | |||
492 | error = PTR_ERR(filename); | 492 | error = PTR_ERR(filename); |
493 | if(IS_ERR(filename)) | 493 | if(IS_ERR(filename)) |
494 | goto out; | 494 | goto out; |
495 | error = do_execve(filename, | 495 | error = do_execve(filename->name, |
496 | (const char __user *const __user *) | 496 | (const char __user *const __user *) |
497 | regs->u_regs[base + UREG_I1], | 497 | regs->u_regs[base + UREG_I1], |
498 | (const char __user *const __user *) | 498 | (const char __user *const __user *) |
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index aff0c72fac09..fcaa59421126 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
@@ -722,7 +722,7 @@ EXPORT_SYMBOL(dump_fpu); | |||
722 | asmlinkage int sparc_execve(struct pt_regs *regs) | 722 | asmlinkage int sparc_execve(struct pt_regs *regs) |
723 | { | 723 | { |
724 | int error, base = 0; | 724 | int error, base = 0; |
725 | char *filename; | 725 | struct filename *filename; |
726 | 726 | ||
727 | /* User register window flush is done by entry.S */ | 727 | /* User register window flush is done by entry.S */ |
728 | 728 | ||
@@ -734,7 +734,7 @@ asmlinkage int sparc_execve(struct pt_regs *regs) | |||
734 | error = PTR_ERR(filename); | 734 | error = PTR_ERR(filename); |
735 | if (IS_ERR(filename)) | 735 | if (IS_ERR(filename)) |
736 | goto out; | 736 | goto out; |
737 | error = do_execve(filename, | 737 | error = do_execve(filename->name, |
738 | (const char __user *const __user *) | 738 | (const char __user *const __user *) |
739 | regs->u_regs[base + UREG_I1], | 739 | regs->u_regs[base + UREG_I1], |
740 | (const char __user *const __user *) | 740 | (const char __user *const __user *) |
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c index d862499eb01c..c3239811a1b5 100644 --- a/arch/sparc/kernel/sys_sparc32.c +++ b/arch/sparc/kernel/sys_sparc32.c | |||
@@ -403,7 +403,7 @@ asmlinkage long compat_sys_rt_sigaction(int sig, | |||
403 | asmlinkage long sparc32_execve(struct pt_regs *regs) | 403 | asmlinkage long sparc32_execve(struct pt_regs *regs) |
404 | { | 404 | { |
405 | int error, base = 0; | 405 | int error, base = 0; |
406 | char *filename; | 406 | struct filename *filename; |
407 | 407 | ||
408 | /* User register window flush is done by entry.S */ | 408 | /* User register window flush is done by entry.S */ |
409 | 409 | ||
@@ -416,7 +416,7 @@ asmlinkage long sparc32_execve(struct pt_regs *regs) | |||
416 | if (IS_ERR(filename)) | 416 | if (IS_ERR(filename)) |
417 | goto out; | 417 | goto out; |
418 | 418 | ||
419 | error = compat_do_execve(filename, | 419 | error = compat_do_execve(filename->name, |
420 | compat_ptr(regs->u_regs[base + UREG_I1]), | 420 | compat_ptr(regs->u_regs[base + UREG_I1]), |
421 | compat_ptr(regs->u_regs[base + UREG_I2]), regs); | 421 | compat_ptr(regs->u_regs[base + UREG_I2]), regs); |
422 | 422 | ||
diff --git a/arch/tile/kernel/process.c b/arch/tile/kernel/process.c index 6be799150501..622560030a58 100644 --- a/arch/tile/kernel/process.c +++ b/arch/tile/kernel/process.c | |||
@@ -594,13 +594,13 @@ SYSCALL_DEFINE4(execve, const char __user *, path, | |||
594 | struct pt_regs *, regs) | 594 | struct pt_regs *, regs) |
595 | { | 595 | { |
596 | long error; | 596 | long error; |
597 | char *filename; | 597 | struct filename *filename; |
598 | 598 | ||
599 | filename = getname(path); | 599 | filename = getname(path); |
600 | error = PTR_ERR(filename); | 600 | error = PTR_ERR(filename); |
601 | if (IS_ERR(filename)) | 601 | if (IS_ERR(filename)) |
602 | goto out; | 602 | goto out; |
603 | error = do_execve(filename, argv, envp, regs); | 603 | error = do_execve(filename->name, argv, envp, regs); |
604 | putname(filename); | 604 | putname(filename); |
605 | if (error == 0) | 605 | if (error == 0) |
606 | single_step_execve(); | 606 | single_step_execve(); |
@@ -615,13 +615,13 @@ long compat_sys_execve(const char __user *path, | |||
615 | struct pt_regs *regs) | 615 | struct pt_regs *regs) |
616 | { | 616 | { |
617 | long error; | 617 | long error; |
618 | char *filename; | 618 | struct filename *filename; |
619 | 619 | ||
620 | filename = getname(path); | 620 | filename = getname(path); |
621 | error = PTR_ERR(filename); | 621 | error = PTR_ERR(filename); |
622 | if (IS_ERR(filename)) | 622 | if (IS_ERR(filename)) |
623 | goto out; | 623 | goto out; |
624 | error = compat_do_execve(filename, argv, envp, regs); | 624 | error = compat_do_execve(filename->name, argv, envp, regs); |
625 | putname(filename); | 625 | putname(filename); |
626 | if (error == 0) | 626 | if (error == 0) |
627 | single_step_execve(); | 627 | single_step_execve(); |
diff --git a/arch/unicore32/kernel/sys.c b/arch/unicore32/kernel/sys.c index 5fd9af773e15..fabdee96110b 100644 --- a/arch/unicore32/kernel/sys.c +++ b/arch/unicore32/kernel/sys.c | |||
@@ -51,13 +51,13 @@ asmlinkage long __sys_execve(const char __user *filename, | |||
51 | struct pt_regs *regs) | 51 | struct pt_regs *regs) |
52 | { | 52 | { |
53 | int error; | 53 | int error; |
54 | char *fn; | 54 | struct filename *fn; |
55 | 55 | ||
56 | fn = getname(filename); | 56 | fn = getname(filename); |
57 | error = PTR_ERR(fn); | 57 | error = PTR_ERR(fn); |
58 | if (IS_ERR(fn)) | 58 | if (IS_ERR(fn)) |
59 | goto out; | 59 | goto out; |
60 | error = do_execve(fn, argv, envp, regs); | 60 | error = do_execve(fn->name, argv, envp, regs); |
61 | putname(fn); | 61 | putname(fn); |
62 | out: | 62 | out: |
63 | return error; | 63 | return error; |
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c index bc44311aa18c..bc020825cce5 100644 --- a/arch/xtensa/kernel/process.c +++ b/arch/xtensa/kernel/process.c | |||
@@ -328,13 +328,13 @@ long xtensa_execve(const char __user *name, | |||
328 | struct pt_regs *regs) | 328 | struct pt_regs *regs) |
329 | { | 329 | { |
330 | long error; | 330 | long error; |
331 | char * filename; | 331 | struct filename *filename; |
332 | 332 | ||
333 | filename = getname(name); | 333 | filename = getname(name); |
334 | error = PTR_ERR(filename); | 334 | error = PTR_ERR(filename); |
335 | if (IS_ERR(filename)) | 335 | if (IS_ERR(filename)) |
336 | goto out; | 336 | goto out; |
337 | error = do_execve(filename, argv, envp, regs); | 337 | error = do_execve(filename->name, argv, envp, regs); |
338 | putname(filename); | 338 | putname(filename); |
339 | out: | 339 | out: |
340 | return error; | 340 | return error; |