file.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /* -*- mode: c; c-basic-offset: 8; -*-
  3. * vim: noexpandtab sw=8 ts=8 sts=0:
  4. *
  5. * file.h
  6. *
  7. * Function prototypes
  8. *
  9. * Copyright (C) 2002, 2004 Oracle. All rights reserved.
  10. */
  11. #ifndef OCFS2_FILE_H
  12. #define OCFS2_FILE_H
  13. extern const struct file_operations ocfs2_fops;
  14. extern const struct file_operations ocfs2_dops;
  15. extern const struct file_operations ocfs2_fops_no_plocks;
  16. extern const struct file_operations ocfs2_dops_no_plocks;
  17. extern const struct inode_operations ocfs2_file_iops;
  18. extern const struct inode_operations ocfs2_special_file_iops;
  19. struct ocfs2_alloc_context;
  20. enum ocfs2_alloc_restarted;
  21. struct ocfs2_file_private {
  22. struct file *fp_file;
  23. struct mutex fp_mutex;
  24. struct ocfs2_lock_res fp_flock;
  25. };
  26. int ocfs2_add_inode_data(struct ocfs2_super *osb,
  27. struct inode *inode,
  28. u32 *logical_offset,
  29. u32 clusters_to_add,
  30. int mark_unwritten,
  31. struct buffer_head *fe_bh,
  32. handle_t *handle,
  33. struct ocfs2_alloc_context *data_ac,
  34. struct ocfs2_alloc_context *meta_ac,
  35. enum ocfs2_alloc_restarted *reason_ret);
  36. int ocfs2_set_inode_size(handle_t *handle,
  37. struct inode *inode,
  38. struct buffer_head *fe_bh,
  39. u64 new_i_size);
  40. int ocfs2_simple_size_update(struct inode *inode,
  41. struct buffer_head *di_bh,
  42. u64 new_i_size);
  43. int ocfs2_truncate_file(struct inode *inode,
  44. struct buffer_head *di_bh,
  45. u64 new_i_size);
  46. int ocfs2_extend_no_holes(struct inode *inode, struct buffer_head *di_bh,
  47. u64 new_i_size, u64 zero_to);
  48. int ocfs2_zero_extend(struct inode *inode, struct buffer_head *di_bh,
  49. loff_t zero_to);
  50. int ocfs2_setattr(struct dentry *dentry, struct iattr *attr);
  51. int ocfs2_getattr(const struct path *path, struct kstat *stat,
  52. u32 request_mask, unsigned int flags);
  53. int ocfs2_permission(struct inode *inode, int mask);
  54. int ocfs2_should_update_atime(struct inode *inode,
  55. struct vfsmount *vfsmnt);
  56. int ocfs2_update_inode_atime(struct inode *inode,
  57. struct buffer_head *bh);
  58. int ocfs2_change_file_space(struct file *file, unsigned int cmd,
  59. struct ocfs2_space_resv *sr);
  60. int ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
  61. size_t count);
  62. int ocfs2_remove_inode_range(struct inode *inode,
  63. struct buffer_head *di_bh, u64 byte_start,
  64. u64 byte_len);
  65. #endif /* OCFS2_FILE_H */