4d4be482a4
XFS has a mode called invisble I/O that doesn't update any of the timestamps. It's used for HSM-style applications and exposed through the nasty open by handle ioctl. Instead of doing directly assignment of file operations that set an internal flag for it add a new FMODE_NOCMTIME flag that we can check in the normal file operations. (addition of the generic VFS flag has been ACKed by Al as an interims solution) Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
82 lines
1.8 KiB
C
82 lines
1.8 KiB
C
/*
|
|
* Copyright (c) 2008 Silicon Graphics, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it would be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
#ifndef __XFS_IOCTL_H__
|
|
#define __XFS_IOCTL_H__
|
|
|
|
extern int
|
|
xfs_ioc_space(
|
|
struct xfs_inode *ip,
|
|
struct inode *inode,
|
|
struct file *filp,
|
|
int ioflags,
|
|
unsigned int cmd,
|
|
xfs_flock64_t *bf);
|
|
|
|
extern int
|
|
xfs_find_handle(
|
|
unsigned int cmd,
|
|
xfs_fsop_handlereq_t *hreq);
|
|
|
|
extern int
|
|
xfs_open_by_handle(
|
|
xfs_mount_t *mp,
|
|
xfs_fsop_handlereq_t *hreq,
|
|
struct file *parfilp,
|
|
struct inode *parinode);
|
|
|
|
extern int
|
|
xfs_readlink_by_handle(
|
|
xfs_mount_t *mp,
|
|
xfs_fsop_handlereq_t *hreq,
|
|
struct inode *parinode);
|
|
|
|
extern int
|
|
xfs_attrmulti_attr_get(
|
|
struct inode *inode,
|
|
char *name,
|
|
char __user *ubuf,
|
|
__uint32_t *len,
|
|
__uint32_t flags);
|
|
|
|
extern int
|
|
xfs_attrmulti_attr_set(
|
|
struct inode *inode,
|
|
char *name,
|
|
const char __user *ubuf,
|
|
__uint32_t len,
|
|
__uint32_t flags);
|
|
|
|
extern int
|
|
xfs_attrmulti_attr_remove(
|
|
struct inode *inode,
|
|
char *name,
|
|
__uint32_t flags);
|
|
|
|
extern long
|
|
xfs_file_ioctl(
|
|
struct file *filp,
|
|
unsigned int cmd,
|
|
unsigned long p);
|
|
|
|
extern long
|
|
xfs_file_compat_ioctl(
|
|
struct file *file,
|
|
unsigned int cmd,
|
|
unsigned long arg);
|
|
|
|
#endif
|