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