From: Alexey Dobriyan * There is trivial "inode => vnode => inode" conversion, but only flags and mode of final inode are looked at. Pass original inode instead. * Two occurences of bhv_vnode_t go out. Signed-off-by: Alexey Dobriyan Cc: Nathan Scott Cc: Christoph Hellwig Signed-off-by: Andrew Morton --- fs/xfs/linux-2.6/xfs_ioctl.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff -puN fs/xfs/linux-2.6/xfs_ioctl.c~xfs-pass-inode-to-xfs_ioc_space fs/xfs/linux-2.6/xfs_ioctl.c --- 25/fs/xfs/linux-2.6/xfs_ioctl.c~xfs-pass-inode-to-xfs_ioc_space Tue Jun 20 15:22:30 2006 +++ 25-akpm/fs/xfs/linux-2.6/xfs_ioctl.c Tue Jun 20 15:22:30 2006 @@ -653,7 +653,7 @@ xfs_attrmulti_by_handle( STATIC int xfs_ioc_space( bhv_desc_t *bdp, - bhv_vnode_t *vp, + struct inode *inode, struct file *filp, int flags, unsigned int cmd, @@ -735,7 +735,7 @@ xfs_ioctl( !capable(CAP_SYS_ADMIN)) return -EPERM; - return xfs_ioc_space(bdp, vp, filp, ioflags, cmd, arg); + return xfs_ioc_space(bdp, inode, filp, ioflags, cmd, arg); case XFS_IOC_DIOINFO: { struct dioattr da; @@ -957,7 +957,7 @@ xfs_ioctl( STATIC int xfs_ioc_space( bhv_desc_t *bdp, - bhv_vnode_t *vp, + struct inode *inode, struct file *filp, int ioflags, unsigned int cmd, @@ -967,13 +967,13 @@ xfs_ioc_space( int attr_flags = 0; int error; - if (vp->v_inode.i_flags & (S_IMMUTABLE|S_APPEND)) + if (inode->i_flags & (S_IMMUTABLE|S_APPEND)) return -XFS_ERROR(EPERM); if (!(filp->f_mode & FMODE_WRITE)) return -XFS_ERROR(EBADF); - if (!VN_ISREG(vp)) + if (!S_ISREG(inode->i_mode)) return -XFS_ERROR(EINVAL); if (copy_from_user(&bf, arg, sizeof(bf))) _