2005-04-17 02:20:36 +04:00
/*
2005-11-02 06:58:39 +03:00
* Copyright ( c ) 2000 - 2005 Silicon Graphics , Inc .
* All Rights Reserved .
2005-04-17 02:20:36 +04:00
*
2005-11-02 06:58:39 +03:00
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
2005-04-17 02:20:36 +04:00
* published by the Free Software Foundation .
*
2005-11-02 06:58:39 +03:00
* 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 .
2005-04-17 02:20:36 +04:00
*
2005-11-02 06:58:39 +03:00
* 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
2005-04-17 02:20:36 +04:00
*/
# ifndef __XFS_VNODE_H__
# define __XFS_VNODE_H__
2008-11-28 06:23:36 +03:00
# include "xfs_fs.h"
2005-04-17 02:20:36 +04:00
struct file ;
2008-11-28 06:23:36 +03:00
struct xfs_inode ;
2005-04-17 02:20:36 +04:00
struct xfs_iomap ;
struct attrlist_cursor_kern ;
/*
2007-08-29 04:58:01 +04:00
* Return values for xfs_inactive . A return value of
2005-04-17 02:20:36 +04:00
* VN_INACTIVE_NOCACHE implies that the file system behavior
* has disassociated its state and bhv_desc_t from the vnode .
*/
# define VN_INACTIVE_CACHE 0
# define VN_INACTIVE_NOCACHE 1
/*
* Flags for read / write calls - same values as IRIX
*/
# define IO_ISDIRECT 0x00004 /* bypass page cache */
# define IO_INVIS 0x00020 /* don't update inode timestamps */
2009-12-15 02:14:59 +03:00
# define XFS_IO_FLAGS \
{ IO_ISDIRECT , " DIRECT " } , \
{ IO_INVIS , " INVIS " }
2005-04-17 02:20:36 +04:00
/*
2006-06-09 11:00:52 +04:00
* Flush / Invalidate options for vop_toss / flush / flushinval_pages .
2005-04-17 02:20:36 +04:00
*/
# define FI_NONE 0 /* none */
# define FI_REMAPF 1 /* Do a remapf prior to the operation */
# define FI_REMAPF_LOCKED 2 / * Do a remapf prior to the operation.
Prevent VM access to the pages until
the operation completes . */
/*
* Some useful predicates .
*/
2008-08-13 10:12:05 +04:00
# define VN_MAPPED(vp) mapping_mapped(vp->i_mapping)
# define VN_CACHED(vp) (vp->i_mapping->nrpages)
# define VN_DIRTY(vp) mapping_tagged(vp->i_mapping, \
2005-04-17 02:20:36 +04:00
PAGECACHE_TAG_DIRTY )
# endif /* __XFS_VNODE_H__ */