#include <linux/blkdev.h>
#include <linux/mm.h>
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/mpage.h>
#include <linux/sched.h>
#include <linux/cred.h>
#include <linux/uio.h>
#include <linux/fileattr.h>
#include "hfsplus_fs.h"
#include "hfsplus_raw.h"
#include "xattr.h"
static int hfsplus_read_folio(struct file *file, struct folio *folio)
{ … }
static void hfsplus_write_failed(struct address_space *mapping, loff_t to)
{ … }
int hfsplus_write_begin(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, struct page **pagep, void **fsdata)
{ … }
static sector_t hfsplus_bmap(struct address_space *mapping, sector_t block)
{ … }
static bool hfsplus_release_folio(struct folio *folio, gfp_t mask)
{ … }
static ssize_t hfsplus_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
{ … }
static int hfsplus_writepages(struct address_space *mapping,
struct writeback_control *wbc)
{ … }
const struct address_space_operations hfsplus_btree_aops = …;
const struct address_space_operations hfsplus_aops = …;
const struct dentry_operations hfsplus_dentry_operations = …;
static void hfsplus_get_perms(struct inode *inode,
struct hfsplus_perm *perms, int dir)
{ … }
static int hfsplus_file_open(struct inode *inode, struct file *file)
{ … }
static int hfsplus_file_release(struct inode *inode, struct file *file)
{ … }
static int hfsplus_setattr(struct mnt_idmap *idmap,
struct dentry *dentry, struct iattr *attr)
{ … }
int hfsplus_getattr(struct mnt_idmap *idmap, const struct path *path,
struct kstat *stat, u32 request_mask,
unsigned int query_flags)
{ … }
int hfsplus_file_fsync(struct file *file, loff_t start, loff_t end,
int datasync)
{ … }
static const struct inode_operations hfsplus_file_inode_operations = …;
static const struct file_operations hfsplus_file_operations = …;
struct inode *hfsplus_new_inode(struct super_block *sb, struct inode *dir,
umode_t mode)
{ … }
void hfsplus_delete_inode(struct inode *inode)
{ … }
void hfsplus_inode_read_fork(struct inode *inode, struct hfsplus_fork_raw *fork)
{ … }
void hfsplus_inode_write_fork(struct inode *inode,
struct hfsplus_fork_raw *fork)
{ … }
int hfsplus_cat_read_inode(struct inode *inode, struct hfs_find_data *fd)
{ … }
int hfsplus_cat_write_inode(struct inode *inode)
{ … }
int hfsplus_fileattr_get(struct dentry *dentry, struct fileattr *fa)
{ … }
int hfsplus_fileattr_set(struct mnt_idmap *idmap,
struct dentry *dentry, struct fileattr *fa)
{ … }