use struct kvec in struct uio
PATCH 1/1 use struct kvec in struct uio
All but one useage of struct uio are for kernel pointers, so let's use struct kvec instead of struct iovec. Because readlink by handle still uses it with a user pointer we still have two sparse warnings, but the noise level is reduced quite a bit by this.
fs/xfs/support/move.h +2 -2
@@ -55,7 +55,7 @@ };struct uio { -struct iovec *uio_iov;/* pointer to array of iovecs */ +struct kvec *uio_iov;/* pointer to array of iovecs */ int uio_iovcnt;/* number of iovecs in array */ xfs_off_t uio_offset;/* offset in file this uio corresponds to */ int uio_resid;/* residual i/o count */
@@ -63,7 +63,7 @@ };typedef struct uio uio_t ; -typedef struct iovec iovec_t ; +typedef struct kvec iovec_t ;extern int xfs_uio_read (caddr_t ,size_t ,uio_t *);
fs/xfs/linux-2.6/xfs_ioctl.c +1 -1
@@ -388,7 +388,7 @@ aiov.iov_len = olen; aiov.iov_base = hreq.ohandle; - auio.uio_iov = &aiov; + auio.uio_iov = (struct kvec *)&aiov; auio.uio_iovcnt =1 ; auio.uio_offset =0 ; auio.uio_segflg =UIO_USERSPACE ;
Quoted 4 lines · Christoph Hellwig
All but one useage of struct uio are for kernel pointers, so let's use struct kvec instead of struct iovec. Because readlink by handle still uses it with a user pointer we still have two sparse warnings, but the noise level is reduced quite a bit by this.
ping?
Quoted 31 lines
Signed-off-by Christoph Hellwig <[email protected]>Index:
linux-2.6/fs/xfs/support/move.h
===================================================================fs/xfs/support/move.h +2
-2@@ -55,7 +55,7 @@ };struct uio { -struct iovec *uio_iov;/* pointer to array of iovecs */ +struct kvec *uio_iov;/* pointer to array of iovecs */ int uio_iovcnt;/* number of iovecs in array */ xfs_off_t uio_offset;/* offset in file this uio corresponds to */ int uio_resid;/* residual i/o count */ @@ -63,7 +63,7 @@ };typedef struct uio uio_t ; -typedef struct iovec iovec_t ; +typedef struct kvec iovec_t ;extern int xfs_uio_read (caddr_t ,size_t ,uio_t *);Index:
linux-2.6/fs/xfs/linux-2.6/xfs_ioctl.c
===================================================================
fs/xfs/linux-2.6/xfs_ioctl.c line 394
Quoted 8 lines
fs/xfs/linux-2.6/xfs_ioctl.c +1
-1@@ -388,7 +388,7 @@ aiov.iov_len = olen; aiov.iov_base = hreq.ohandle; - auio.uio_iov = &aiov; + auio.uio_iov = (struct kvec *)&aiov; auio.uio_iovcnt =1 ; auio.uio_offset =0 ; auio.uio_segflg =UIO_USERSPACE ;
---end quoted text---
Christoph,
Looks like another lost take message to oss.
mod xfs-linux-melb:xfs-kern:27701a TAKE message
================================================
Subject: TAKE 954580 -
use struct kvec in struct uio
Date: Tue Dec 12 13:13:14 AEDT 2006 Workarea: vpn-emea-sw-emea-160-4.emea.sgi.com:/home/lachlan/isms/2.6.x-xfs Inspected by: hch Author: lachlan
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:27701afs/xfs/support/move.h - 1.19 - changedfs/xfs/linux-2.6/xfs_ioctl.c - 1.140 - changedfs/xfs/dmapi/xfs_dm.c - 1.31 - changed
- use struct kvec in struct uio
I also included this change to fix a warning introduced with your patch.
*** /usr/tmp/TmpDir.8968-0/fs/xfs/dmapi/xfs_dm.c_1.30 2007-02-07 18:00:52.000000000 +0000
--- /usr/tmp/TmpDir.8968-0/fs/xfs/dmapi/xfs_dm.c_1.31 2007-02-07 18:00:52.000000000 +0000
***************
*** 928,934 ****
{
int sink;
struct uio auio;
! struct iovec aiov;
int rval;
*nreadp = 0;
--- 928,934 ----
{
int sink;
struct uio auio;
! iovec_t aiov;
int rval;
*nreadp = 0;Lachlan
Quoted 53 lines · Christoph Hellwig
Quoted 4 lines · Christoph Hellwig
All but one useage of struct uio are for kernel pointers, so let's use struct kvec instead of struct iovec. Because readlink by handle still uses it with a user pointer we still have two sparse warnings, but the noise level is reduced quite a bit by this.
ping?
Quoted 30 lines
Signed-off-by Christoph Hellwig <[email protected]>Index:
linux-2.6/fs/xfs/support/move.h
===================================================================fs/xfs/support/move.h +2
-2@@ -55,7 +55,7 @@ };struct uio { -struct iovec *uio_iov;/* pointer to array of iovecs */ +struct kvec *uio_iov;/* pointer to array of iovecs */ int uio_iovcnt;/* number of iovecs in array */ xfs_off_t uio_offset;/* offset in file this uio corresponds to */ int uio_resid;/* residual i/o count */ @@ -63,7 +63,7 @@ };typedef struct uio uio_t ; -typedef struct iovec iovec_t ; +typedef struct kvec iovec_t ;extern int xfs_uio_read (caddr_t ,size_t ,uio_t *);Index:
linux-2.6/fs/xfs/linux-2.6/xfs_ioctl.c
===================================================================fs/xfs/linux-2.6/xfs_ioctl.c line 394
Quoted 8 lines
fs/xfs/linux-2.6/xfs_ioctl.c +1
-1@@ -388,7 +388,7 @@ aiov.iov_len = olen; aiov.iov_base = hreq.ohandle; - auio.uio_iov = &aiov; + auio.uio_iov = (struct kvec *)&aiov; auio.uio_iovcnt =1 ; auio.uio_offset =0 ; auio.uio_segflg =UIO_USERSPACE ;---end quoted text---