2019-05-24 13:04:05 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2021-05-07 04:06:44 +03:00
/*
2005-12-16 01:31:24 +03:00
* file . h
*
* Function prototypes
*
* Copyright ( C ) 2002 , 2004 Oracle . All rights reserved .
*/
# ifndef OCFS2_FILE_H
# define OCFS2_FILE_H
2006-03-28 13:56:42 +04:00
extern const struct file_operations ocfs2_fops ;
extern const struct file_operations ocfs2_dops ;
2008-07-22 01:29:16 +04:00
extern const struct file_operations ocfs2_fops_no_plocks ;
extern const struct file_operations ocfs2_dops_no_plocks ;
2007-02-12 11:55:39 +03:00
extern const struct inode_operations ocfs2_file_iops ;
extern const struct inode_operations ocfs2_special_file_iops ;
2005-12-16 01:31:24 +03:00
struct ocfs2_alloc_context ;
2008-08-18 13:38:45 +04:00
enum ocfs2_alloc_restarted ;
2005-12-16 01:31:24 +03:00
2007-12-21 03:43:10 +03:00
struct ocfs2_file_private {
struct file * fp_file ;
struct mutex fp_mutex ;
struct ocfs2_lock_res fp_flock ;
} ;
2008-08-18 13:38:45 +04:00
int ocfs2_add_inode_data ( struct ocfs2_super * osb ,
struct inode * inode ,
u32 * logical_offset ,
u32 clusters_to_add ,
int mark_unwritten ,
struct buffer_head * fe_bh ,
handle_t * handle ,
struct ocfs2_alloc_context * data_ac ,
struct ocfs2_alloc_context * meta_ac ,
enum ocfs2_alloc_restarted * reason_ret ) ;
2015-02-17 02:59:50 +03:00
int ocfs2_set_inode_size ( handle_t * handle ,
struct inode * inode ,
struct buffer_head * fe_bh ,
u64 new_i_size ) ;
2008-08-25 21:56:50 +04:00
int ocfs2_simple_size_update ( struct inode * inode ,
struct buffer_head * di_bh ,
u64 new_i_size ) ;
2015-02-17 02:59:50 +03:00
int ocfs2_truncate_file ( struct inode * inode ,
struct buffer_head * di_bh ,
u64 new_i_size ) ;
2010-07-02 02:13:31 +04:00
int ocfs2_extend_no_holes ( struct inode * inode , struct buffer_head * di_bh ,
u64 new_i_size , u64 zero_to ) ;
int ocfs2_zero_extend ( struct inode * inode , struct buffer_head * di_bh ,
loff_t zero_to ) ;
2023-01-13 14:49:11 +03:00
int ocfs2_setattr ( struct mnt_idmap * idmap , struct dentry * dentry ,
2021-01-21 16:19:43 +03:00
struct iattr * attr ) ;
2023-01-13 14:49:12 +03:00
int ocfs2_getattr ( struct mnt_idmap * idmap , const struct path * path ,
2021-01-21 16:19:43 +03:00
struct kstat * stat , u32 request_mask , unsigned int flags ) ;
2023-01-13 14:49:22 +03:00
int ocfs2_permission ( struct mnt_idmap * idmap ,
2021-01-21 16:19:43 +03:00
struct inode * inode ,
int mask ) ;
2005-12-16 01:31:24 +03:00
2006-11-15 10:48:42 +03:00
int ocfs2_should_update_atime ( struct inode * inode ,
struct vfsmount * vfsmnt ) ;
int ocfs2_update_inode_atime ( struct inode * inode ,
struct buffer_head * bh ) ;
2007-03-10 03:53:21 +03:00
int ocfs2_change_file_space ( struct file * file , unsigned int cmd ,
struct ocfs2_space_resv * sr ) ;
2009-08-25 04:02:48 +04:00
int ocfs2_check_range_for_refcount ( struct inode * inode , loff_t pos ,
size_t count ) ;
2016-11-10 01:13:11 +03:00
int ocfs2_remove_inode_range ( struct inode * inode ,
struct buffer_head * di_bh , u64 byte_start ,
u64 byte_len ) ;
2005-12-16 01:31:24 +03:00
# endif /* OCFS2_FILE_H */