2007-08-28 10:12:30 +04:00
# ifndef _XFS_VNODEOPS_H
# define _XFS_VNODEOPS_H 1
struct attrlist_cursor_kern ;
struct file ;
2008-07-18 11:13:28 +04:00
struct iattr ;
2007-08-28 10:12:30 +04:00
struct inode ;
struct iovec ;
struct kiocb ;
struct pipe_inode_info ;
struct uio ;
struct xfs_inode ;
struct xfs_iomap ;
2008-10-30 10:27:48 +03:00
int xfs_setattr ( struct xfs_inode * ip , struct iattr * vap , int flags ) ;
2008-07-18 11:13:28 +04:00
# define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */
# define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */
# define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */
2009-06-10 19:07:47 +04:00
# define XFS_ATTR_NOACL 0x08 /* Don't call xfs_acl_chmod */
2008-07-18 11:13:28 +04:00
2007-08-28 10:12:30 +04:00
int xfs_readlink ( struct xfs_inode * ip , char * link ) ;
int xfs_release ( struct xfs_inode * ip ) ;
int xfs_inactive ( struct xfs_inode * ip ) ;
2008-04-10 06:22:07 +04:00
int xfs_lookup ( struct xfs_inode * dp , struct xfs_name * name ,
2008-05-21 10:58:22 +04:00
struct xfs_inode * * ipp , struct xfs_name * ci_name ) ;
2008-04-10 06:22:07 +04:00
int xfs_create ( struct xfs_inode * dp , struct xfs_name * name , mode_t mode ,
2010-10-06 22:41:17 +04:00
xfs_dev_t rdev , struct xfs_inode * * ipp ) ;
2008-04-10 06:22:07 +04:00
int xfs_remove ( struct xfs_inode * dp , struct xfs_name * name ,
struct xfs_inode * ip ) ;
2008-03-06 05:46:12 +03:00
int xfs_link ( struct xfs_inode * tdp , struct xfs_inode * sip ,
2008-04-10 06:22:07 +04:00
struct xfs_name * target_name ) ;
2007-08-28 10:12:30 +04:00
int xfs_readdir ( struct xfs_inode * dp , void * dirent , size_t bufsize ,
xfs_off_t * offset , filldir_t filldir ) ;
2008-04-10 06:22:07 +04:00
int xfs_symlink ( struct xfs_inode * dp , struct xfs_name * link_name ,
2010-10-06 22:41:17 +04:00
const char * target_path , mode_t mode , struct xfs_inode * * ipp ) ;
2007-08-28 10:12:30 +04:00
int xfs_set_dmattrs ( struct xfs_inode * ip , u_int evmask , u_int16_t state ) ;
int xfs_change_file_space ( struct xfs_inode * ip , int cmd ,
2008-10-30 10:27:48 +03:00
xfs_flock64_t * bf , xfs_off_t offset , int attr_flags ) ;
2008-04-10 06:22:07 +04:00
int xfs_rename ( struct xfs_inode * src_dp , struct xfs_name * src_name ,
struct xfs_inode * src_ip , struct xfs_inode * target_dp ,
2008-04-22 11:34:06 +04:00
struct xfs_name * target_name , struct xfs_inode * target_ip ) ;
2010-01-20 02:47:48 +03:00
int xfs_attr_get ( struct xfs_inode * ip , const unsigned char * name ,
unsigned char * value , int * valuelenp , int flags ) ;
int xfs_attr_set ( struct xfs_inode * dp , const unsigned char * name ,
unsigned char * value , int valuelen , int flags ) ;
int xfs_attr_remove ( struct xfs_inode * dp , const unsigned char * name , int flags ) ;
2007-08-28 10:12:30 +04:00
int xfs_attr_list ( struct xfs_inode * dp , char * buffer , int bufsize ,
int flags , struct attrlist_cursor_kern * cursor ) ;
int xfs_bmap ( struct xfs_inode * ip , xfs_off_t offset , ssize_t count ,
int flags , struct xfs_iomap * iomapp , int * niomaps ) ;
void xfs_tosspages ( struct xfs_inode * inode , xfs_off_t first ,
xfs_off_t last , int fiopt ) ;
int xfs_flushinval_pages ( struct xfs_inode * ip , xfs_off_t first ,
xfs_off_t last , int fiopt ) ;
int xfs_flush_pages ( struct xfs_inode * ip , xfs_off_t first ,
xfs_off_t last , uint64_t flags , int fiopt ) ;
2008-11-28 06:23:33 +03:00
int xfs_wait_on_pages ( struct xfs_inode * ip , xfs_off_t first , xfs_off_t last ) ;
2007-08-28 10:12:30 +04:00
2010-02-17 22:36:13 +03:00
int xfs_zero_eof ( struct xfs_inode * , xfs_off_t , xfs_fsize_t ) ;
2007-08-28 10:12:30 +04:00
# endif /* _XFS_VNODEOPS_H */