diff options
-rw-r--r-- | fs/exec.c | 17 | ||||
-rw-r--r-- | fs/read_write.c | 16 |
2 files changed, 16 insertions, 17 deletions
@@ -885,23 +885,6 @@ struct file *open_exec(const char *name) | |||
885 | } | 885 | } |
886 | EXPORT_SYMBOL(open_exec); | 886 | EXPORT_SYMBOL(open_exec); |
887 | 887 | ||
888 | int kernel_read(struct file *file, loff_t offset, | ||
889 | char *addr, unsigned long count) | ||
890 | { | ||
891 | mm_segment_t old_fs; | ||
892 | loff_t pos = offset; | ||
893 | int result; | ||
894 | |||
895 | old_fs = get_fs(); | ||
896 | set_fs(get_ds()); | ||
897 | /* The cast to a user pointer is valid due to the set_fs() */ | ||
898 | result = vfs_read(file, (void __user *)addr, count, &pos); | ||
899 | set_fs(old_fs); | ||
900 | return result; | ||
901 | } | ||
902 | |||
903 | EXPORT_SYMBOL(kernel_read); | ||
904 | |||
905 | int kernel_read_file(struct file *file, void **buf, loff_t *size, | 888 | int kernel_read_file(struct file *file, void **buf, loff_t *size, |
906 | loff_t max_size, enum kernel_read_file_id id) | 889 | loff_t max_size, enum kernel_read_file_id id) |
907 | { | 890 | { |
diff --git a/fs/read_write.c b/fs/read_write.c index 417dbe199505..1ea862bc7efd 100644 --- a/fs/read_write.c +++ b/fs/read_write.c | |||
@@ -415,6 +415,22 @@ ssize_t __vfs_read(struct file *file, char __user *buf, size_t count, | |||
415 | } | 415 | } |
416 | EXPORT_SYMBOL(__vfs_read); | 416 | EXPORT_SYMBOL(__vfs_read); |
417 | 417 | ||
418 | int kernel_read(struct file *file, loff_t offset, char *addr, | ||
419 | unsigned long count) | ||
420 | { | ||
421 | mm_segment_t old_fs; | ||
422 | loff_t pos = offset; | ||
423 | int result; | ||
424 | |||
425 | old_fs = get_fs(); | ||
426 | set_fs(get_ds()); | ||
427 | /* The cast to a user pointer is valid due to the set_fs() */ | ||
428 | result = vfs_read(file, (void __user *)addr, count, &pos); | ||
429 | set_fs(old_fs); | ||
430 | return result; | ||
431 | } | ||
432 | EXPORT_SYMBOL(kernel_read); | ||
433 | |||
418 | ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) | 434 | ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) |
419 | { | 435 | { |
420 | ssize_t ret; | 436 | ssize_t ret; |