162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * file.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Function prototypes
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef OCFS2_FILE_H
1162306a36Sopenharmony_ci#define OCFS2_FILE_H
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciextern const struct file_operations ocfs2_fops;
1462306a36Sopenharmony_ciextern const struct file_operations ocfs2_dops;
1562306a36Sopenharmony_ciextern const struct file_operations ocfs2_fops_no_plocks;
1662306a36Sopenharmony_ciextern const struct file_operations ocfs2_dops_no_plocks;
1762306a36Sopenharmony_ciextern const struct inode_operations ocfs2_file_iops;
1862306a36Sopenharmony_ciextern const struct inode_operations ocfs2_special_file_iops;
1962306a36Sopenharmony_cistruct ocfs2_alloc_context;
2062306a36Sopenharmony_cienum ocfs2_alloc_restarted;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cistruct ocfs2_file_private {
2362306a36Sopenharmony_ci	struct file		*fp_file;
2462306a36Sopenharmony_ci	struct mutex		fp_mutex;
2562306a36Sopenharmony_ci	struct ocfs2_lock_res	fp_flock;
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciint ocfs2_add_inode_data(struct ocfs2_super *osb,
2962306a36Sopenharmony_ci			 struct inode *inode,
3062306a36Sopenharmony_ci			 u32 *logical_offset,
3162306a36Sopenharmony_ci			 u32 clusters_to_add,
3262306a36Sopenharmony_ci			 int mark_unwritten,
3362306a36Sopenharmony_ci			 struct buffer_head *fe_bh,
3462306a36Sopenharmony_ci			 handle_t *handle,
3562306a36Sopenharmony_ci			 struct ocfs2_alloc_context *data_ac,
3662306a36Sopenharmony_ci			 struct ocfs2_alloc_context *meta_ac,
3762306a36Sopenharmony_ci			 enum ocfs2_alloc_restarted *reason_ret);
3862306a36Sopenharmony_ciint ocfs2_set_inode_size(handle_t *handle,
3962306a36Sopenharmony_ci		struct inode *inode,
4062306a36Sopenharmony_ci		struct buffer_head *fe_bh,
4162306a36Sopenharmony_ci		u64 new_i_size);
4262306a36Sopenharmony_ciint ocfs2_simple_size_update(struct inode *inode,
4362306a36Sopenharmony_ci			     struct buffer_head *di_bh,
4462306a36Sopenharmony_ci			     u64 new_i_size);
4562306a36Sopenharmony_ciint ocfs2_truncate_file(struct inode *inode,
4662306a36Sopenharmony_ci		struct buffer_head *di_bh,
4762306a36Sopenharmony_ci		u64 new_i_size);
4862306a36Sopenharmony_ciint ocfs2_extend_no_holes(struct inode *inode, struct buffer_head *di_bh,
4962306a36Sopenharmony_ci			  u64 new_i_size, u64 zero_to);
5062306a36Sopenharmony_ciint ocfs2_zero_extend(struct inode *inode, struct buffer_head *di_bh,
5162306a36Sopenharmony_ci		      loff_t zero_to);
5262306a36Sopenharmony_ciint ocfs2_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
5362306a36Sopenharmony_ci		  struct iattr *attr);
5462306a36Sopenharmony_ciint ocfs2_getattr(struct mnt_idmap *idmap, const struct path *path,
5562306a36Sopenharmony_ci		  struct kstat *stat, u32 request_mask, unsigned int flags);
5662306a36Sopenharmony_ciint ocfs2_permission(struct mnt_idmap *idmap,
5762306a36Sopenharmony_ci		     struct inode *inode,
5862306a36Sopenharmony_ci		     int mask);
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciint ocfs2_should_update_atime(struct inode *inode,
6162306a36Sopenharmony_ci			      struct vfsmount *vfsmnt);
6262306a36Sopenharmony_ciint ocfs2_update_inode_atime(struct inode *inode,
6362306a36Sopenharmony_ci			     struct buffer_head *bh);
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciint ocfs2_change_file_space(struct file *file, unsigned int cmd,
6662306a36Sopenharmony_ci			    struct ocfs2_space_resv *sr);
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciint ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
6962306a36Sopenharmony_ci				   size_t count);
7062306a36Sopenharmony_ciint ocfs2_remove_inode_range(struct inode *inode,
7162306a36Sopenharmony_ci			     struct buffer_head *di_bh, u64 byte_start,
7262306a36Sopenharmony_ci			     u64 byte_len);
7362306a36Sopenharmony_ci#endif /* OCFS2_FILE_H */
74