#include <linux/time.h>
#include <linux/fs.h>
#include <linux/swap.h>
#include <linux/iversion.h>
#include "ufs_fs.h"
#include "ufs.h"
#include "swab.h"
#include "util.h"
static inline int ufs_match(struct super_block *sb, int len,
const unsigned char *name, struct ufs_dir_entry *de)
{ … }
static void ufs_commit_chunk(struct folio *folio, loff_t pos, unsigned len)
{ … }
static int ufs_handle_dirsync(struct inode *dir)
{ … }
ino_t ufs_inode_by_name(struct inode *dir, const struct qstr *qstr)
{ … }
void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
struct folio *folio, struct inode *inode,
bool update_times)
{ … }
static bool ufs_check_folio(struct folio *folio, char *kaddr)
{ … }
static void *ufs_get_folio(struct inode *dir, unsigned long n,
struct folio **foliop)
{ … }
static unsigned
ufs_last_byte(struct inode *inode, unsigned long page_nr)
{ … }
static inline struct ufs_dir_entry *
ufs_next_entry(struct super_block *sb, struct ufs_dir_entry *p)
{ … }
struct ufs_dir_entry *ufs_dotdot(struct inode *dir, struct folio **foliop)
{ … }
struct ufs_dir_entry *ufs_find_entry(struct inode *dir, const struct qstr *qstr,
struct folio **foliop)
{ … }
int ufs_add_link(struct dentry *dentry, struct inode *inode)
{ … }
static inline unsigned
ufs_validate_entry(struct super_block *sb, char *base,
unsigned offset, unsigned mask)
{ … }
static int
ufs_readdir(struct file *file, struct dir_context *ctx)
{ … }
int ufs_delete_entry(struct inode *inode, struct ufs_dir_entry *dir,
struct folio *folio)
{ … }
int ufs_make_empty(struct inode * inode, struct inode *dir)
{ … }
int ufs_empty_dir(struct inode * inode)
{ … }
static int ufs_dir_open(struct inode *inode, struct file *file)
{ … }
static int ufs_dir_release(struct inode *inode, struct file *file)
{ … }
static loff_t ufs_dir_llseek(struct file *file, loff_t offset, int whence)
{ … }
const struct file_operations ufs_dir_operations = …;