@@ -3002,7 +3002,7 @@ static struct dentry *__start_removing_path(int dfd, struct filename *name,
30023002struct dentry * kern_path_parent (const char * name , struct path * path )
30033003{
30043004 struct path parent_path __free (path_put ) = {};
3005- struct filename * filename __free ( putname ) = getname_kernel (name );
3005+ CLASS ( filename_kernel , filename ) (name );
30063006 struct dentry * d ;
30073007 struct qstr last ;
30083008 int type , error ;
@@ -3023,11 +3023,8 @@ struct dentry *kern_path_parent(const char *name, struct path *path)
30233023
30243024struct dentry * start_removing_path (const char * name , struct path * path )
30253025{
3026- struct filename * filename = getname_kernel (name );
3027- struct dentry * res = __start_removing_path (AT_FDCWD , filename , path );
3028-
3029- putname (filename );
3030- return res ;
3026+ CLASS (filename_kernel , filename )(name );
3027+ return __start_removing_path (AT_FDCWD , filename , path );
30313028}
30323029
30333030struct dentry * start_removing_user_path_at (int dfd ,
@@ -3044,12 +3041,8 @@ EXPORT_SYMBOL(start_removing_user_path_at);
30443041
30453042int kern_path (const char * name , unsigned int flags , struct path * path )
30463043{
3047- struct filename * filename = getname_kernel (name );
3048- int ret = filename_lookup (AT_FDCWD , filename , flags , path , NULL );
3049-
3050- putname (filename );
3051- return ret ;
3052-
3044+ CLASS (filename_kernel , filename )(name );
3045+ return filename_lookup (AT_FDCWD , filename , flags , path , NULL );
30533046}
30543047EXPORT_SYMBOL (kern_path );
30553048
@@ -3083,15 +3076,11 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
30833076 const char * name , unsigned int flags ,
30843077 struct path * path )
30853078{
3086- struct filename * filename ;
3079+ CLASS ( filename_kernel , filename )( name ) ;
30873080 struct path root = {.mnt = mnt , .dentry = dentry };
3088- int ret ;
30893081
3090- filename = getname_kernel (name );
30913082 /* the first argument of filename_lookup() is ignored with root */
3092- ret = filename_lookup (AT_FDCWD , filename , flags , path , & root );
3093- putname (filename );
3094- return ret ;
3083+ return filename_lookup (AT_FDCWD , filename , flags , path , & root );
30953084}
30963085EXPORT_SYMBOL (vfs_path_lookup );
30973086
@@ -4888,13 +4877,12 @@ struct file *do_file_open_root(const struct path *root,
48884877{
48894878 struct nameidata nd ;
48904879 struct file * file ;
4891- struct filename * filename ;
48924880 int flags = op -> lookup_flags ;
48934881
48944882 if (d_is_symlink (root -> dentry ) && op -> intent & LOOKUP_OPEN )
48954883 return ERR_PTR (- ELOOP );
48964884
4897- filename = getname_kernel (name );
4885+ CLASS ( filename_kernel , filename ) (name );
48984886 if (IS_ERR (filename ))
48994887 return ERR_CAST (filename );
49004888
@@ -4905,7 +4893,6 @@ struct file *do_file_open_root(const struct path *root,
49054893 if (unlikely (file == ERR_PTR (- ESTALE )))
49064894 file = path_openat (& nd , op , flags | LOOKUP_REVAL );
49074895 restore_nameidata ();
4908- putname (filename );
49094896 return file ;
49104897}
49114898
@@ -4961,11 +4948,8 @@ static struct dentry *filename_create(int dfd, struct filename *name,
49614948struct dentry * start_creating_path (int dfd , const char * pathname ,
49624949 struct path * path , unsigned int lookup_flags )
49634950{
4964- struct filename * filename = getname_kernel (pathname );
4965- struct dentry * res = filename_create (dfd , filename , path , lookup_flags );
4966-
4967- putname (filename );
4968- return res ;
4951+ CLASS (filename_kernel , filename )(pathname );
4952+ return filename_create (dfd , filename , path , lookup_flags );
49694953}
49704954EXPORT_SYMBOL (start_creating_path );
49714955
0 commit comments