reiser4: porting to 3.16: any reason ->aio_read() of struct file_operations has been left out?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From `git log` I've seen that VFS people intend to replace ->aio_read() and
->aio_write() of struct file_operations with new methods ->read_iter() and
->write_iter().

(Along with a couple of related new helpers, differing from previous just in
calling _iter methods instead of aio_ ones.)

From other filesystems it seems that these are simple drop-in replacements
(however, well, I have zero familiarity with VFS). So here is a question:
is there any intentional reason that generic_file_aio_write() is not used
in reiser4?

What follows is a simple patch that I've currently applied to my own kernel
(seems to be the only significant vfs change affecting filesystems), however,
I fear that these code-paths are not generally used, so my "works for me"
isn't really representative. Could you please clarify the situation here?

From 81172835255a01718c2c256942d5887825a0cd7a Mon Sep 17 00:00:00 2001
From: Ivan Shapovalov <intelfx100@xxxxxxxxx>
Date: Tue, 19 Aug 2014 14:33:35 +0400
Subject: [PATCH] Adjust reiser4 to 3.16: ->{read,write}_iter of struct
 file_operations.

1. ->aio_{read,write} of struct file_operations are being replaced with ->{read,write}_iter.
2. do_sync_{read,write} are being replaced with new_sync_{read,write}.
3. generic_file_splice_write is being replaced with iter_file_splice_write.

Signed-off-by: Ivan Shapovalov <intelfx100@xxxxxxxxx>
---
 fs/reiser4/plugin/file/cryptcompress.c | 2 +-
 fs/reiser4/plugin/file/file.c          | 2 +-
 fs/reiser4/plugin/object.c             | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/reiser4/plugin/file/cryptcompress.c b/fs/reiser4/plugin/file/cryptcompress.c
index 8af388d..b0109fb 100644
--- a/fs/reiser4/plugin/file/cryptcompress.c
+++ b/fs/reiser4/plugin/file/cryptcompress.c
@@ -2964,7 +2964,7 @@ ssize_t read_cryptcompress(struct file * file, char __user *buf, size_t size,
 		reiser4_exit_context(ctx);
 		return result;
 	}
-	result = do_sync_read(file, buf, size, off);
+	result = new_sync_read(file, buf, size, off);
 
 	context_set_commit_async(ctx);
 	reiser4_exit_context(ctx);
diff --git a/fs/reiser4/plugin/file/file.c b/fs/reiser4/plugin/file/file.c
index 94029cd..e65c48d 100644
--- a/fs/reiser4/plugin/file/file.c
+++ b/fs/reiser4/plugin/file/file.c
@@ -1752,7 +1752,7 @@ ssize_t read_unix_file(struct file *file, char __user *buf,
 	switch (uf_info->container) {
 	case UF_CONTAINER_EXTENTS:
 		if (!reiser4_inode_get_flag(inode, REISER4_PART_MIXED)) {
-			result = do_sync_read(file, buf, read_amount, off);
+			result = new_sync_read(file, buf, read_amount, off);
 			break;
 		}
 	case UF_CONTAINER_TAILS:
diff --git a/fs/reiser4/plugin/object.c b/fs/reiser4/plugin/object.c
index 553f1e2..e431e1f 100644
--- a/fs/reiser4/plugin/object.c
+++ b/fs/reiser4/plugin/object.c
@@ -188,7 +188,7 @@ static struct file_operations regular_file_f_ops = {
 	.llseek = generic_file_llseek,
 	.read = reiser4_read_dispatch,
 	.write = reiser4_write_dispatch,
-	.aio_read = generic_file_aio_read,
+	.read_iter = generic_file_read_iter,
 	.unlocked_ioctl = reiser4_ioctl_dispatch,
 #ifdef CONFIG_COMPAT
 	.compat_ioctl = reiser4_ioctl_dispatch,
@@ -198,7 +198,7 @@ static struct file_operations regular_file_f_ops = {
 	.release = reiser4_release_dispatch,
 	.fsync = reiser4_sync_file_common,
 	.splice_read = generic_file_splice_read,
-	.splice_write = generic_file_splice_write
+	.splice_write = iter_file_splice_write
 };
 static struct address_space_operations regular_file_a_ops = {
 	.writepage = reiser4_writepage,
-- 
2.0.4

Thanks,
-- 
Ivan Shapovalov / intelfx /

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux