--- /dev/null
+--- a/fs/yaffs2/yaffs_vfs.c
++++ b/fs/yaffs2/yaffs_vfs.c
+@@ -796,13 +796,13 @@
+ static const struct file_operations yaffs_file_operations = {
+ .read = do_sync_read,
+ .write = do_sync_write,
+- .aio_read = generic_file_aio_read,
+- .aio_write = generic_file_aio_write,
++ .read_iter = generic_file_read_iter,
++ .write_iter = generic_file_write_iter,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
+ .fsync = yaffs_sync_object,
+ .splice_read = generic_file_splice_read,
+- .splice_write = generic_file_splice_write,
++ .splice_write = iter_file_splice_write,
+ .llseek = generic_file_llseek,
+ };
+
+@@ -1050,7 +1050,7 @@
+ if (!alias)
+ return -ENOMEM;
+
+- ret = vfs_readlink(dentry, buffer, buflen, alias);
++ ret = readlink_copy(buffer, buflen, alias);
+ kfree(alias);
+ return ret;
+ }
--- /dev/null
+--- a/fs/yaffs2/yaffs_vfs.c
++++ b/fs/yaffs2/yaffs_vfs.c
+@@ -796,13 +796,13 @@
+ static const struct file_operations yaffs_file_operations = {
+ .read = do_sync_read,
+ .write = do_sync_write,
+- .aio_read = generic_file_aio_read,
+- .aio_write = generic_file_aio_write,
++ .read_iter = generic_file_read_iter,
++ .write_iter = generic_file_write_iter,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
+ .fsync = yaffs_sync_object,
+ .splice_read = generic_file_splice_read,
+- .splice_write = generic_file_splice_write,
++ .splice_write = iter_file_splice_write,
+ .llseek = generic_file_llseek,
+ };
+
+@@ -1050,7 +1050,7 @@
+ if (!alias)
+ return -ENOMEM;
+
+- ret = vfs_readlink(dentry, buffer, buflen, alias);
++ ret = readlink_copy(buffer, buflen, alias);
+ kfree(alias);
+ return ret;
+ }
--- /dev/null
+--- a/fs/yaffs2/yaffs_vfs.c
++++ b/fs/yaffs2/yaffs_vfs.c
+@@ -796,13 +796,13 @@
+ static const struct file_operations yaffs_file_operations = {
+ .read = do_sync_read,
+ .write = do_sync_write,
+- .aio_read = generic_file_aio_read,
+- .aio_write = generic_file_aio_write,
++ .read_iter = generic_file_read_iter,
++ .write_iter = generic_file_write_iter,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
+ .fsync = yaffs_sync_object,
+ .splice_read = generic_file_splice_read,
+- .splice_write = generic_file_splice_write,
++ .splice_write = iter_file_splice_write,
+ .llseek = generic_file_llseek,
+ };
+
+@@ -1050,7 +1050,7 @@
+ if (!alias)
+ return -ENOMEM;
+
+- ret = vfs_readlink(dentry, buffer, buflen, alias);
++ ret = readlink_copy(buffer, buflen, alias);
+ kfree(alias);
+ return ret;
+ }