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 ;
2011-07-08 16:34:23 +04:00
int xfs_setattr_nonsize ( struct xfs_inode * ip , struct iattr * vap , int flags ) ;
int xfs_setattr_size ( 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 */
2011-03-26 01:13:08 +03:00
# define XFS_ATTR_SYNC 0x10 /* synchronous operation required */
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 ) ;
2011-07-26 10:50:15 +04:00
int xfs_create ( struct xfs_inode * dp , struct xfs_name * name , umode_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 ,
2011-07-26 10:50:15 +04:00
const char * target_path , umode_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 ) ;
2012-11-29 08:26:33 +04:00
int xfs_iozero ( struct xfs_inode * , loff_t , size_t ) ;
2010-02-17 22:36:13 +03:00
int xfs_zero_eof ( struct xfs_inode * , xfs_off_t , xfs_fsize_t ) ;
2012-11-06 18:50:41 +04:00
int xfs_free_eofblocks ( struct xfs_mount * , struct xfs_inode * , bool ) ;
2010-02-17 22:36:13 +03:00
2007-08-28 10:12:30 +04:00
# endif /* _XFS_VNODEOPS_H */