#include <linux/iversion.h>
#include <linux/namei.h>
#include <linux/slab.h>
#include <linux/buffer_head.h>
#include <linux/nls.h>
#include "exfat_raw.h"
#include "exfat_fs.h"
static inline unsigned long exfat_d_version(struct dentry *dentry)
{ … }
static inline void exfat_d_version_set(struct dentry *dentry,
unsigned long version)
{ … }
static int exfat_d_revalidate(struct dentry *dentry, unsigned int flags)
{ … }
static unsigned int exfat_striptail_len(unsigned int len, const char *name,
bool keep_last_dots)
{ … }
static int exfat_d_hash(const struct dentry *dentry, struct qstr *qstr)
{ … }
static int exfat_d_cmp(const struct dentry *dentry, unsigned int len,
const char *str, const struct qstr *name)
{ … }
const struct dentry_operations exfat_dentry_ops = …;
static int exfat_utf8_d_hash(const struct dentry *dentry, struct qstr *qstr)
{ … }
static int exfat_utf8_d_cmp(const struct dentry *dentry, unsigned int len,
const char *str, const struct qstr *name)
{ … }
const struct dentry_operations exfat_utf8_dentry_ops = …;
static int exfat_search_empty_slot(struct super_block *sb,
struct exfat_hint_femp *hint_femp, struct exfat_chain *p_dir,
int num_entries, struct exfat_entry_set_cache *es)
{ … }
static int exfat_check_max_dentries(struct inode *inode)
{ … }
static int exfat_find_empty_entry(struct inode *inode,
struct exfat_chain *p_dir, int num_entries,
struct exfat_entry_set_cache *es)
{ … }
static int __exfat_resolve_path(struct inode *inode, const unsigned char *path,
struct exfat_chain *p_dir, struct exfat_uni_name *p_uniname,
int lookup)
{ … }
static inline int exfat_resolve_path(struct inode *inode,
const unsigned char *path, struct exfat_chain *dir,
struct exfat_uni_name *uni)
{ … }
static inline int exfat_resolve_path_for_lookup(struct inode *inode,
const unsigned char *path, struct exfat_chain *dir,
struct exfat_uni_name *uni)
{ … }
static inline loff_t exfat_make_i_pos(struct exfat_dir_entry *info)
{ … }
static int exfat_add_entry(struct inode *inode, const char *path,
struct exfat_chain *p_dir, unsigned int type,
struct exfat_dir_entry *info)
{ … }
static int exfat_create(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t mode, bool excl)
{ … }
static int exfat_find(struct inode *dir, struct qstr *qname,
struct exfat_dir_entry *info)
{ … }
static int exfat_d_anon_disconn(struct dentry *dentry)
{ … }
static struct dentry *exfat_lookup(struct inode *dir, struct dentry *dentry,
unsigned int flags)
{ … }
static int exfat_unlink(struct inode *dir, struct dentry *dentry)
{ … }
static int exfat_mkdir(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t mode)
{ … }
static int exfat_check_dir_empty(struct super_block *sb,
struct exfat_chain *p_dir)
{ … }
static int exfat_rmdir(struct inode *dir, struct dentry *dentry)
{ … }
static int exfat_rename_file(struct inode *inode, struct exfat_chain *p_dir,
int oldentry, struct exfat_uni_name *p_uniname,
struct exfat_inode_info *ei)
{ … }
static int exfat_move_file(struct inode *inode, struct exfat_chain *p_olddir,
int oldentry, struct exfat_chain *p_newdir,
struct exfat_uni_name *p_uniname, struct exfat_inode_info *ei)
{ … }
static int __exfat_rename(struct inode *old_parent_inode,
struct exfat_inode_info *ei, struct inode *new_parent_inode,
struct dentry *new_dentry)
{ … }
static int exfat_rename(struct mnt_idmap *idmap,
struct inode *old_dir, struct dentry *old_dentry,
struct inode *new_dir, struct dentry *new_dentry,
unsigned int flags)
{ … }
const struct inode_operations exfat_dir_inode_operations = …;