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