#include <linux/capability.h>
#include <linux/compat.h>
#include "autofs_i.h"
static int autofs_dir_permission(struct mnt_idmap *, struct inode *, int);
static int autofs_dir_symlink(struct mnt_idmap *, struct inode *,
struct dentry *, const char *);
static int autofs_dir_unlink(struct inode *, struct dentry *);
static int autofs_dir_rmdir(struct inode *, struct dentry *);
static int autofs_dir_mkdir(struct mnt_idmap *, struct inode *,
struct dentry *, umode_t);
static long autofs_root_ioctl(struct file *, unsigned int, unsigned long);
#ifdef CONFIG_COMPAT
static long autofs_root_compat_ioctl(struct file *,
unsigned int, unsigned long);
#endif
static int autofs_dir_open(struct inode *inode, struct file *file);
static struct dentry *autofs_lookup(struct inode *,
struct dentry *, unsigned int);
static struct vfsmount *autofs_d_automount(struct path *);
static int autofs_d_manage(const struct path *, bool);
static void autofs_dentry_release(struct dentry *);
const struct file_operations autofs_root_operations = …;
const struct file_operations autofs_dir_operations = …;
const struct inode_operations autofs_dir_inode_operations = …;
const struct dentry_operations autofs_dentry_operations = …;
static void autofs_del_active(struct dentry *dentry)
{ … }
static int autofs_dir_open(struct inode *inode, struct file *file)
{ … }
static void autofs_dentry_release(struct dentry *de)
{ … }
static struct dentry *autofs_lookup_active(struct dentry *dentry)
{ … }
static struct dentry *autofs_lookup_expiring(struct dentry *dentry,
bool rcu_walk)
{ … }
static int autofs_mount_wait(const struct path *path, bool rcu_walk)
{ … }
static int do_expire_wait(const struct path *path, bool rcu_walk)
{ … }
static struct dentry *autofs_mountpoint_changed(struct path *path)
{ … }
static struct vfsmount *autofs_d_automount(struct path *path)
{ … }
static int autofs_d_manage(const struct path *path, bool rcu_walk)
{ … }
static struct dentry *autofs_lookup(struct inode *dir,
struct dentry *dentry, unsigned int flags)
{ … }
static int autofs_dir_permission(struct mnt_idmap *idmap,
struct inode *inode, int mask)
{ … }
static int autofs_dir_symlink(struct mnt_idmap *idmap,
struct inode *dir, struct dentry *dentry,
const char *symname)
{ … }
static int autofs_dir_unlink(struct inode *dir, struct dentry *dentry)
{ … }
static void autofs_set_leaf_automount_flags(struct dentry *dentry)
{ … }
static void autofs_clear_leaf_automount_flags(struct dentry *dentry)
{ … }
static int autofs_dir_rmdir(struct inode *dir, struct dentry *dentry)
{ … }
static int autofs_dir_mkdir(struct mnt_idmap *idmap,
struct inode *dir, struct dentry *dentry,
umode_t mode)
{ … }
#ifdef CONFIG_COMPAT
static inline int autofs_compat_get_set_timeout(struct autofs_sb_info *sbi,
compat_ulong_t __user *p)
{ … }
#endif
static inline int autofs_get_set_timeout(struct autofs_sb_info *sbi,
unsigned long __user *p)
{ … }
static inline int autofs_get_protover(struct autofs_sb_info *sbi,
int __user *p)
{ … }
static inline int autofs_get_protosubver(struct autofs_sb_info *sbi,
int __user *p)
{ … }
static inline int autofs_ask_umount(struct vfsmount *mnt, int __user *p)
{ … }
int is_autofs_dentry(struct dentry *dentry)
{ … }
static int autofs_root_ioctl_unlocked(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{ … }
static long autofs_root_ioctl(struct file *filp,
unsigned int cmd, unsigned long arg)
{ … }
#ifdef CONFIG_COMPAT
static long autofs_root_compat_ioctl(struct file *filp,
unsigned int cmd, unsigned long arg)
{ … }
#endif