18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/* -*- mode: c; c-basic-offset: 8; -*-
38c2ecf20Sopenharmony_ci * vim: noexpandtab sw=8 ts=8 sts=0:
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * file.h
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Function prototypes
88c2ecf20Sopenharmony_ci *
98c2ecf20Sopenharmony_ci * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
108c2ecf20Sopenharmony_ci */
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#ifndef OCFS2_FILE_H
138c2ecf20Sopenharmony_ci#define OCFS2_FILE_H
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciextern const struct file_operations ocfs2_fops;
168c2ecf20Sopenharmony_ciextern const struct file_operations ocfs2_dops;
178c2ecf20Sopenharmony_ciextern const struct file_operations ocfs2_fops_no_plocks;
188c2ecf20Sopenharmony_ciextern const struct file_operations ocfs2_dops_no_plocks;
198c2ecf20Sopenharmony_ciextern const struct inode_operations ocfs2_file_iops;
208c2ecf20Sopenharmony_ciextern const struct inode_operations ocfs2_special_file_iops;
218c2ecf20Sopenharmony_cistruct ocfs2_alloc_context;
228c2ecf20Sopenharmony_cienum ocfs2_alloc_restarted;
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_cistruct ocfs2_file_private {
258c2ecf20Sopenharmony_ci	struct file		*fp_file;
268c2ecf20Sopenharmony_ci	struct mutex		fp_mutex;
278c2ecf20Sopenharmony_ci	struct ocfs2_lock_res	fp_flock;
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciint ocfs2_add_inode_data(struct ocfs2_super *osb,
318c2ecf20Sopenharmony_ci			 struct inode *inode,
328c2ecf20Sopenharmony_ci			 u32 *logical_offset,
338c2ecf20Sopenharmony_ci			 u32 clusters_to_add,
348c2ecf20Sopenharmony_ci			 int mark_unwritten,
358c2ecf20Sopenharmony_ci			 struct buffer_head *fe_bh,
368c2ecf20Sopenharmony_ci			 handle_t *handle,
378c2ecf20Sopenharmony_ci			 struct ocfs2_alloc_context *data_ac,
388c2ecf20Sopenharmony_ci			 struct ocfs2_alloc_context *meta_ac,
398c2ecf20Sopenharmony_ci			 enum ocfs2_alloc_restarted *reason_ret);
408c2ecf20Sopenharmony_ciint ocfs2_set_inode_size(handle_t *handle,
418c2ecf20Sopenharmony_ci		struct inode *inode,
428c2ecf20Sopenharmony_ci		struct buffer_head *fe_bh,
438c2ecf20Sopenharmony_ci		u64 new_i_size);
448c2ecf20Sopenharmony_ciint ocfs2_simple_size_update(struct inode *inode,
458c2ecf20Sopenharmony_ci			     struct buffer_head *di_bh,
468c2ecf20Sopenharmony_ci			     u64 new_i_size);
478c2ecf20Sopenharmony_ciint ocfs2_truncate_file(struct inode *inode,
488c2ecf20Sopenharmony_ci		struct buffer_head *di_bh,
498c2ecf20Sopenharmony_ci		u64 new_i_size);
508c2ecf20Sopenharmony_ciint ocfs2_extend_no_holes(struct inode *inode, struct buffer_head *di_bh,
518c2ecf20Sopenharmony_ci			  u64 new_i_size, u64 zero_to);
528c2ecf20Sopenharmony_ciint ocfs2_zero_extend(struct inode *inode, struct buffer_head *di_bh,
538c2ecf20Sopenharmony_ci		      loff_t zero_to);
548c2ecf20Sopenharmony_ciint ocfs2_setattr(struct dentry *dentry, struct iattr *attr);
558c2ecf20Sopenharmony_ciint ocfs2_getattr(const struct path *path, struct kstat *stat,
568c2ecf20Sopenharmony_ci		  u32 request_mask, unsigned int flags);
578c2ecf20Sopenharmony_ciint ocfs2_permission(struct inode *inode, int mask);
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciint ocfs2_should_update_atime(struct inode *inode,
608c2ecf20Sopenharmony_ci			      struct vfsmount *vfsmnt);
618c2ecf20Sopenharmony_ciint ocfs2_update_inode_atime(struct inode *inode,
628c2ecf20Sopenharmony_ci			     struct buffer_head *bh);
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciint ocfs2_change_file_space(struct file *file, unsigned int cmd,
658c2ecf20Sopenharmony_ci			    struct ocfs2_space_resv *sr);
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciint ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
688c2ecf20Sopenharmony_ci				   size_t count);
698c2ecf20Sopenharmony_ciint ocfs2_remove_inode_range(struct inode *inode,
708c2ecf20Sopenharmony_ci			     struct buffer_head *di_bh, u64 byte_start,
718c2ecf20Sopenharmony_ci			     u64 byte_len);
728c2ecf20Sopenharmony_ci#endif /* OCFS2_FILE_H */
73