vfs: move getname() from callers to do_mount()

It would make more sense to pass char __user * instead of
char * in callers of do_mount() and do getname() inside do_mount().

Suggested-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Seunghun Lee <waydi1@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Seunghun Lee
2014-09-14 22:15:10 +09:00
کامیت شده توسط Al Viro
والد 4d93bc3e81
کامیت 5e6123f347
4فایلهای تغییر یافته به همراه21 افزوده شده و 44 حذف شده

مشاهده پرونده

@@ -446,7 +446,8 @@ struct procfs_args {
* unhappy with OSF UFS. [CHECKME]
*/
static int
osf_ufs_mount(const char *dirname, struct ufs_args __user *args, int flags)
osf_ufs_mount(const char __user *dirname,
struct ufs_args __user *args, int flags)
{
int retval;
struct cdfs_args tmp;
@@ -466,7 +467,8 @@ osf_ufs_mount(const char *dirname, struct ufs_args __user *args, int flags)
}
static int
osf_cdfs_mount(const char *dirname, struct cdfs_args __user *args, int flags)
osf_cdfs_mount(const char __user *dirname,
struct cdfs_args __user *args, int flags)
{
int retval;
struct cdfs_args tmp;
@@ -486,7 +488,8 @@ osf_cdfs_mount(const char *dirname, struct cdfs_args __user *args, int flags)
}
static int
osf_procfs_mount(const char *dirname, struct procfs_args __user *args, int flags)
osf_procfs_mount(const char __user *dirname,
struct procfs_args __user *args, int flags)
{
struct procfs_args tmp;
@@ -500,28 +503,22 @@ SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, const char __user *, path,
int, flag, void __user *, data)
{
int retval;
struct filename *name;
name = getname(path);
retval = PTR_ERR(name);
if (IS_ERR(name))
goto out;
switch (typenr) {
case 1:
retval = osf_ufs_mount(name->name, data, flag);
retval = osf_ufs_mount(path, data, flag);
break;
case 6:
retval = osf_cdfs_mount(name->name, data, flag);
retval = osf_cdfs_mount(path, data, flag);
break;
case 9:
retval = osf_procfs_mount(name->name, data, flag);
retval = osf_procfs_mount(path, data, flag);
break;
default:
retval = -EINVAL;
printk("osf_mount(%ld, %x)\n", typenr, flag);
}
putname(name);
out:
return retval;
}