Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d3870398 authored by Nathan Scott's avatar Nathan Scott Committed by Christoph Hellwig
Browse files

[XFS] Fix directory inodes ioctl compat code, minor code consistency cleanups



SGI Modid: xfs-linux:xfs-kern:21810a

Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
parent 68d1498c
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -565,7 +565,7 @@ struct file_operations linvfs_file_operations = {
	.sendfile	= linvfs_sendfile,
	.sendfile	= linvfs_sendfile,
	.unlocked_ioctl	= linvfs_ioctl,
	.unlocked_ioctl	= linvfs_ioctl,
#ifdef CONFIG_COMPAT
#ifdef CONFIG_COMPAT
	.compat_ioctl   = xfs_compat_ioctl,
	.compat_ioctl	= linvfs_compat_ioctl,
#endif
#endif
	.mmap		= linvfs_file_mmap,
	.mmap		= linvfs_file_mmap,
	.open		= linvfs_open,
	.open		= linvfs_open,
@@ -587,7 +587,7 @@ struct file_operations linvfs_invis_file_operations = {
	.sendfile	= linvfs_sendfile,
	.sendfile	= linvfs_sendfile,
	.unlocked_ioctl	= linvfs_ioctl_invis,
	.unlocked_ioctl	= linvfs_ioctl_invis,
#ifdef CONFIG_COMPAT
#ifdef CONFIG_COMPAT
	.compat_ioctl   = xfs_compat_invis_ioctl,
	.compat_ioctl	= linvfs_compat_invis_ioctl,
#endif
#endif
	.mmap		= linvfs_file_mmap,
	.mmap		= linvfs_file_mmap,
	.open		= linvfs_open,
	.open		= linvfs_open,
@@ -600,6 +600,9 @@ struct file_operations linvfs_dir_operations = {
	.read		= generic_read_dir,
	.read		= generic_read_dir,
	.readdir	= linvfs_readdir,
	.readdir	= linvfs_readdir,
	.unlocked_ioctl	= linvfs_ioctl,
	.unlocked_ioctl	= linvfs_ioctl,
#ifdef CONFIG_COMPAT
	.compat_ioctl	= linvfs_compat_ioctl,
#endif
	.fsync		= linvfs_fsync,
	.fsync		= linvfs_fsync,
};
};


+19 −10
Original line number Original line Diff line number Diff line
/*
/*
 * Copyright (c) 2004 Silicon Graphics, Inc.  All Rights Reserved.
 * Copyright (c) 2004-2005 Silicon Graphics, Inc.  All Rights Reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify it
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * under the terms of version 2 of the GNU General Public License as
@@ -58,8 +58,9 @@ typedef struct xfs_fsop_bulkreq32 {
	__s32		ocount;		/* output count pointer		*/
	__s32		ocount;		/* output count pointer		*/
} xfs_fsop_bulkreq32_t;
} xfs_fsop_bulkreq32_t;


static unsigned long
STATIC unsigned long
xfs_ioctl32_bulkstat(unsigned long arg)
xfs_ioctl32_bulkstat(
	unsigned long		arg)
{
{
	xfs_fsop_bulkreq32_t	__user *p32 = (void __user *)arg;
	xfs_fsop_bulkreq32_t	__user *p32 = (void __user *)arg;
	xfs_fsop_bulkreq_t	__user *p = compat_alloc_user_space(sizeof(*p));
	xfs_fsop_bulkreq_t	__user *p = compat_alloc_user_space(sizeof(*p));
@@ -78,8 +79,8 @@ xfs_ioctl32_bulkstat(unsigned long arg)
}
}
#endif
#endif


static long
STATIC long
__xfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg)
__linvfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg)
{
{
	int		error;
	int		error;
	struct		inode *inode = f->f_dentry->d_inode;
	struct		inode *inode = f->f_dentry->d_inode;
@@ -152,12 +153,20 @@ __xfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg)
	return error;
	return error;
}
}


long xfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg)
long
linvfs_compat_ioctl(
	struct file		*f,
	unsigned		cmd,
	unsigned long		arg)
{
{
	return __xfs_compat_ioctl(0, f, cmd, arg);
	return __linvfs_compat_ioctl(0, f, cmd, arg);
}
}


long xfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg)
long
linvfs_compat_invis_ioctl(
	struct file		*f,
	unsigned		cmd,
	unsigned long		arg)
{
{
	return __xfs_compat_ioctl(IO_INVIS, f, cmd, arg);
	return __linvfs_compat_ioctl(IO_INVIS, f, cmd, arg);
}
}
+3 −3
Original line number Original line Diff line number Diff line
/*
/*
 * Copyright (c) 2004 Silicon Graphics, Inc.  All Rights Reserved.
 * Copyright (c) 2004-2005 Silicon Graphics, Inc.  All Rights Reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify it
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * under the terms of version 2 of the GNU General Public License as
@@ -30,5 +30,5 @@
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 */
 */


long xfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg);
long linvfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg);
long xfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg);
long linvfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg);
+1 −2
Original line number Original line Diff line number Diff line
/*
/*
 * Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
 * Copyright (c) 2000-2005 Silicon Graphics, Inc.  All Rights Reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify it
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * under the terms of version 2 of the GNU General Public License as
@@ -66,7 +66,6 @@
#include "xfs_buf_item.h"
#include "xfs_buf_item.h"
#include "xfs_utils.h"
#include "xfs_utils.h"
#include "xfs_version.h"
#include "xfs_version.h"
#include "xfs_ioctl32.h"


#include <linux/namei.h>
#include <linux/namei.h>
#include <linux/init.h>
#include <linux/init.h>