#include <linux/slab.h>
#include <linux/compat.h>
#include <linux/cred.h>
#include <linux/buffer_head.h>
#include <linux/blkdev.h>
#include <linux/fsnotify.h>
#include <linux/security.h>
#include <linux/msdos_fs.h>
#include <linux/writeback.h>
#include "exfat_raw.h"
#include "exfat_fs.h"
static int exfat_cont_expand(struct inode *inode, loff_t size)
{ … }
static bool exfat_allow_set_time(struct mnt_idmap *idmap,
struct exfat_sb_info *sbi, struct inode *inode)
{ … }
static int exfat_sanitize_mode(const struct exfat_sb_info *sbi,
struct inode *inode, umode_t *mode_ptr)
{ … }
int __exfat_truncate(struct inode *inode)
{ … }
void exfat_truncate(struct inode *inode)
{ … }
int exfat_getattr(struct mnt_idmap *idmap, const struct path *path,
struct kstat *stat, unsigned int request_mask,
unsigned int query_flags)
{ … }
int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
struct iattr *attr)
{ … }
static int exfat_ioctl_get_attributes(struct inode *inode, u32 __user *user_attr)
{ … }
static int exfat_ioctl_set_attributes(struct file *file, u32 __user *user_attr)
{ … }
static int exfat_ioctl_fitrim(struct inode *inode, unsigned long arg)
{ … }
long exfat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{ … }
#ifdef CONFIG_COMPAT
long exfat_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg)
{ … }
#endif
int exfat_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
{ … }
static int exfat_file_zeroed_range(struct file *file, loff_t start, loff_t end)
{ … }
static ssize_t exfat_file_write_iter(struct kiocb *iocb, struct iov_iter *iter)
{ … }
static int exfat_file_mmap(struct file *file, struct vm_area_struct *vma)
{ … }
const struct file_operations exfat_file_operations = …;
const struct inode_operations exfat_file_inode_operations = …;