diff options
Diffstat (limited to 'fs/open.c')
-rw-r--r-- | fs/open.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -968,8 +968,14 @@ struct file *file_open_name(struct filename *name, int flags, umode_t mode) | |||
968 | */ | 968 | */ |
969 | struct file *filp_open(const char *filename, int flags, umode_t mode) | 969 | struct file *filp_open(const char *filename, int flags, umode_t mode) |
970 | { | 970 | { |
971 | struct filename name = {.name = filename}; | 971 | struct filename *name = getname_kernel(filename); |
972 | return file_open_name(&name, flags, mode); | 972 | struct file *file = ERR_CAST(name); |
973 | |||
974 | if (!IS_ERR(name)) { | ||
975 | file = file_open_name(name, flags, mode); | ||
976 | putname(name); | ||
977 | } | ||
978 | return file; | ||
973 | } | 979 | } |
974 | EXPORT_SYMBOL(filp_open); | 980 | EXPORT_SYMBOL(filp_open); |
975 | 981 | ||