Messages in this thread Patch in this message | | | Date | Wed, 12 Jul 2006 21:10:54 -0700 | From | Badari Pulavarty <> | Subject | [PATCH] s390 hypfs fixes for 2.6.18-rc1-mm1 |
| |
Hi Micheal,
I made fixes to hypfs to fit new vfs ops interfaces. I am not sure if we really need to vectorize aio interfaces, can you check and see if this is okay ?
And also, I am not sure what hypfs_aio_write() is actually doing. It doesn't seem to be doing with "buf" ?
(BTW - I have no way to verify these change. Can you give them a spin ?)
Thanks, Badari
Vectorize aio interfaces to hypfs to fit new vfs ops interfaces.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
Index: linux-2.6.18-rc1/arch/s390/hypfs/inode.c =================================================================== --- linux-2.6.18-rc1.orig/arch/s390/hypfs/inode.c 2006-07-11 21:28:07.000000000 -0700 +++ linux-2.6.18-rc1/arch/s390/hypfs/inode.c 2006-07-12 21:18:44.000000000 -0700 @@ -134,12 +134,20 @@ static int hypfs_open(struct inode *inod return 0; } -static ssize_t hypfs_aio_read(struct kiocb *iocb, __user char *buf, - size_t count, loff_t offset) +static ssize_t hypfs_aio_read(struct kiocb *iocb, const struct iovec *iov, + unsigned long nr_segs, loff_t offset) { char *data; size_t len; struct file *filp = iocb->ki_filp; + /* XXX: temporary */ + const struct __user *buf = iov[0].iov_base; + size_t count = iov[0].iov_len; + + if (nr_segs != 1) { + count = -EINVAL; + goto out; + } data = filp->private_data; len = strlen(data); @@ -158,12 +166,13 @@ static ssize_t hypfs_aio_read(struct kio out: return count; } -static ssize_t hypfs_aio_write(struct kiocb *iocb, const char __user *buf, - size_t count, loff_t pos) +static ssize_t hypfs_aio_write(struct kiocb *iocb, const struct iovec *iov, + unsigned long nr_segs, loff_t offset) { int rc; struct super_block *sb; struct hypfs_sb_info *fs_info; + size_t count = iov_length(iov, nr_segs); sb = iocb->ki_filp->f_dentry->d_inode->i_sb; fs_info = sb->s_fs_info; | |