From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932187AbWGMEK5 (ORCPT ); Thu, 13 Jul 2006 00:10:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932225AbWGMEK5 (ORCPT ); Thu, 13 Jul 2006 00:10:57 -0400 Received: from e31.co.us.ibm.com ([32.97.110.149]:45451 "EHLO e31.co.us.ibm.com") by vger.kernel.org with ESMTP id S932187AbWGMEK4 (ORCPT ); Thu, 13 Jul 2006 00:10:56 -0400 Message-ID: <44B5C7CE.6090606@us.ibm.com> Date: Wed, 12 Jul 2006 21:10:54 -0700 From: Badari Pulavarty User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) MIME-Version: 1.0 To: Michael Holzheu , Andrew Morton , lkml Subject: [PATCH] s390 hypfs fixes for 2.6.18-rc1-mm1 Content-Type: multipart/mixed; boundary="------------040106080505020505000106" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------040106080505020505000106 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------040106080505020505000106 Content-Type: text/plain; name="hypfs-fixes.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hypfs-fixes.patch" Vectorize aio interfaces to hypfs to fit new vfs ops interfaces. Signed-off-by: Badari Pulavarty 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; --------------040106080505020505000106--