X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=fs%2Fread_write.c;h=f9f8bb137806b20a44019073f3ecd0380449a9f3;hb=e14748e882aaea81c2c08e700fae09322aa4babb;hp=5816d4c4cab09c22274c2cdc40f4176f16426f0a;hpb=0815cfda63da56a2ca3c50e988e4a752593dd8f4;p=mirror_ubuntu-zesty-kernel.git diff --git a/fs/read_write.c b/fs/read_write.c index 5816d4c4cab0..f9f8bb137806 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -515,6 +515,30 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count, } EXPORT_SYMBOL(__vfs_write); +vfs_readf_t vfs_readf(struct file *file) +{ + const struct file_operations *fop = file->f_op; + + if (fop->read) + return fop->read; + if (fop->read_iter) + return new_sync_read; + return ERR_PTR(-ENOSYS); +} +EXPORT_SYMBOL_GPL(vfs_readf); + +vfs_writef_t vfs_writef(struct file *file) +{ + const struct file_operations *fop = file->f_op; + + if (fop->write) + return fop->write; + if (fop->write_iter) + return new_sync_write; + return ERR_PTR(-ENOSYS); +} +EXPORT_SYMBOL_GPL(vfs_writef); + ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos) { mm_segment_t old_fs;