Loading fs/cachefiles/rdwr.c +19 −29 Original line number Diff line number Diff line Loading @@ -880,7 +880,6 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) { struct cachefiles_object *object; struct cachefiles_cache *cache; mm_segment_t old_fs; struct file *file; struct path path; loff_t pos, eof; Loading Loading @@ -914,8 +913,6 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) if (IS_ERR(file)) { ret = PTR_ERR(file); } else { ret = -EIO; if (file->f_op->write) { pos = (loff_t) page->index << PAGE_SHIFT; /* we mustn't write more data than we have, so we have Loading @@ -933,17 +930,10 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) } data = kmap(page); file_start_write(file); old_fs = get_fs(); set_fs(KERNEL_DS); ret = file->f_op->write( file, (const void __user *) data, len, &pos); set_fs(old_fs); ret = __kernel_write(file, data, len, &pos); kunmap(page); file_end_write(file); if (ret != len) ret = -EIO; } fput(file); } Loading fs/read_write.c +2 −0 Original line number Diff line number Diff line Loading @@ -513,6 +513,8 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t return ret; } EXPORT_SYMBOL(__kernel_write); ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos) { ssize_t ret; Loading Loading
fs/cachefiles/rdwr.c +19 −29 Original line number Diff line number Diff line Loading @@ -880,7 +880,6 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) { struct cachefiles_object *object; struct cachefiles_cache *cache; mm_segment_t old_fs; struct file *file; struct path path; loff_t pos, eof; Loading Loading @@ -914,8 +913,6 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) if (IS_ERR(file)) { ret = PTR_ERR(file); } else { ret = -EIO; if (file->f_op->write) { pos = (loff_t) page->index << PAGE_SHIFT; /* we mustn't write more data than we have, so we have Loading @@ -933,17 +930,10 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) } data = kmap(page); file_start_write(file); old_fs = get_fs(); set_fs(KERNEL_DS); ret = file->f_op->write( file, (const void __user *) data, len, &pos); set_fs(old_fs); ret = __kernel_write(file, data, len, &pos); kunmap(page); file_end_write(file); if (ret != len) ret = -EIO; } fput(file); } Loading
fs/read_write.c +2 −0 Original line number Diff line number Diff line Loading @@ -513,6 +513,8 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t return ret; } EXPORT_SYMBOL(__kernel_write); ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos) { ssize_t ret; Loading