[XFS] Fix directory inodes ioctl compat code, minor code consistency cleanups
SGI Modid: xfs-linux:xfs-kern:21810a Signed-off-by: Nathan Scott <nathans@sgi.com> Signed-off-by: Christoph Hellwig <hch@sgi.com>
This commit is contained in:
parent
68d1498c3a
commit
d3870398fa
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* 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,11 +79,11 @@ 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;
|
||||||
vnode_t *vp = LINVFS_GET_VP(inode);
|
vnode_t *vp = LINVFS_GET_VP(inode);
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* 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,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* 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>
|
||||||
|
|
Loading…
Reference in New Issue