#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_shared.h"
#include "xfs_format.h"
#include "xfs_log_format.h"
#include "xfs_trans_resv.h"
#include "xfs_mount.h"
#include "xfs_inode.h"
#include "xfs_acl.h"
#include "xfs_quota.h"
#include "xfs_da_format.h"
#include "xfs_da_btree.h"
#include "xfs_attr.h"
#include "xfs_trans.h"
#include "xfs_trans_space.h"
#include "xfs_bmap_btree.h"
#include "xfs_trace.h"
#include "xfs_icache.h"
#include "xfs_symlink.h"
#include "xfs_dir2.h"
#include "xfs_iomap.h"
#include "xfs_error.h"
#include "xfs_ioctl.h"
#include "xfs_xattr.h"
#include "xfs_file.h"
#include "xfs_bmap.h"
#include <linux/posix_acl.h>
#include <linux/security.h>
#include <linux/iversion.h>
#include <linux/fiemap.h>
static struct lock_class_key xfs_nondir_ilock_class;
static struct lock_class_key xfs_dir_ilock_class;
static int
xfs_initxattrs(
struct inode *inode,
const struct xattr *xattr_array,
void *fs_info)
{ … }
int
xfs_inode_init_security(
struct inode *inode,
struct inode *dir,
const struct qstr *qstr)
{ … }
static void
xfs_dentry_to_name(
struct xfs_name *namep,
struct dentry *dentry)
{ … }
static int
xfs_dentry_mode_to_name(
struct xfs_name *namep,
struct dentry *dentry,
int mode)
{ … }
STATIC void
xfs_cleanup_inode(
struct inode *dir,
struct inode *inode,
struct dentry *dentry)
{ … }
static inline bool
xfs_create_need_xattr(
struct inode *dir,
struct posix_acl *default_acl,
struct posix_acl *acl)
{ … }
STATIC int
xfs_generic_create(
struct mnt_idmap *idmap,
struct inode *dir,
struct dentry *dentry,
umode_t mode,
dev_t rdev,
struct file *tmpfile)
{ … }
STATIC int
xfs_vn_mknod(
struct mnt_idmap *idmap,
struct inode *dir,
struct dentry *dentry,
umode_t mode,
dev_t rdev)
{ … }
STATIC int
xfs_vn_create(
struct mnt_idmap *idmap,
struct inode *dir,
struct dentry *dentry,
umode_t mode,
bool flags)
{ … }
STATIC int
xfs_vn_mkdir(
struct mnt_idmap *idmap,
struct inode *dir,
struct dentry *dentry,
umode_t mode)
{ … }
STATIC struct dentry *
xfs_vn_lookup(
struct inode *dir,
struct dentry *dentry,
unsigned int flags)
{ … }
STATIC struct dentry *
xfs_vn_ci_lookup(
struct inode *dir,
struct dentry *dentry,
unsigned int flags)
{ … }
STATIC int
xfs_vn_link(
struct dentry *old_dentry,
struct inode *dir,
struct dentry *dentry)
{ … }
STATIC int
xfs_vn_unlink(
struct inode *dir,
struct dentry *dentry)
{ … }
STATIC int
xfs_vn_symlink(
struct mnt_idmap *idmap,
struct inode *dir,
struct dentry *dentry,
const char *symname)
{ … }
STATIC int
xfs_vn_rename(
struct mnt_idmap *idmap,
struct inode *odir,
struct dentry *odentry,
struct inode *ndir,
struct dentry *ndentry,
unsigned int flags)
{ … }
STATIC const char *
xfs_vn_get_link(
struct dentry *dentry,
struct inode *inode,
struct delayed_call *done)
{ … }
static uint32_t
xfs_stat_blksize(
struct xfs_inode *ip)
{ … }
STATIC int
xfs_vn_getattr(
struct mnt_idmap *idmap,
const struct path *path,
struct kstat *stat,
u32 request_mask,
unsigned int query_flags)
{ … }
static int
xfs_vn_change_ok(
struct mnt_idmap *idmap,
struct dentry *dentry,
struct iattr *iattr)
{ … }
static int
xfs_setattr_nonsize(
struct mnt_idmap *idmap,
struct dentry *dentry,
struct xfs_inode *ip,
struct iattr *iattr)
{ … }
STATIC int
xfs_setattr_size(
struct mnt_idmap *idmap,
struct dentry *dentry,
struct xfs_inode *ip,
struct iattr *iattr)
{ … }
int
xfs_vn_setattr_size(
struct mnt_idmap *idmap,
struct dentry *dentry,
struct iattr *iattr)
{ … }
STATIC int
xfs_vn_setattr(
struct mnt_idmap *idmap,
struct dentry *dentry,
struct iattr *iattr)
{ … }
STATIC int
xfs_vn_update_time(
struct inode *inode,
int flags)
{ … }
STATIC int
xfs_vn_fiemap(
struct inode *inode,
struct fiemap_extent_info *fieinfo,
u64 start,
u64 length)
{ … }
STATIC int
xfs_vn_tmpfile(
struct mnt_idmap *idmap,
struct inode *dir,
struct file *file,
umode_t mode)
{ … }
static const struct inode_operations xfs_inode_operations = …;
static const struct inode_operations xfs_dir_inode_operations = …;
static const struct inode_operations xfs_dir_ci_inode_operations = …;
static const struct inode_operations xfs_symlink_inode_operations = …;
static bool
xfs_inode_supports_dax(
struct xfs_inode *ip)
{ … }
static bool
xfs_inode_should_enable_dax(
struct xfs_inode *ip)
{ … }
void
xfs_diflags_to_iflags(
struct xfs_inode *ip,
bool init)
{ … }
void
xfs_setup_inode(
struct xfs_inode *ip)
{ … }
void
xfs_setup_iops(
struct xfs_inode *ip)
{ … }