#include "protocol.h"
#include "orangefs-kernel.h"
#include "orangefs-dev-proto.h"
#include "orangefs-bufmap.h"
#include "orangefs-debugfs.h"
#include <linux/debugfs.h>
#include <linux/slab.h>
uint32_t orangefs_userspace_version;
static int open_access_count;
static DEFINE_MUTEX(devreq_mutex);
#define DUMP_DEVICE_ERROR() …
static int hash_func(__u64 tag, int table_size)
{ … }
static void orangefs_devreq_add_op(struct orangefs_kernel_op_s *op)
{ … }
static struct orangefs_kernel_op_s *orangefs_devreq_remove_op(__u64 tag)
{ … }
static int mark_all_pending_mounts(void)
{ … }
static int fs_mount_pending(__s32 fsid)
{ … }
static int orangefs_devreq_open(struct inode *inode, struct file *file)
{ … }
static ssize_t orangefs_devreq_read(struct file *file,
char __user *buf,
size_t count, loff_t *offset)
{ … }
static ssize_t orangefs_devreq_write_iter(struct kiocb *iocb,
struct iov_iter *iter)
{ … }
static int orangefs_devreq_release(struct inode *inode, struct file *file)
{ … }
int is_daemon_in_service(void)
{ … }
bool __is_daemon_in_service(void)
{ … }
static inline long check_ioctl_command(unsigned int command)
{ … }
static long dispatch_ioctl_command(unsigned int command, unsigned long arg)
{ … }
static long orangefs_devreq_ioctl(struct file *file,
unsigned int command, unsigned long arg)
{ … }
#ifdef CONFIG_COMPAT
struct ORANGEFS_dev_map_desc32 { … };
static long orangefs_devreq_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long args)
{ … }
#endif
static __poll_t orangefs_devreq_poll(struct file *file,
struct poll_table_struct *poll_table)
{ … }
static int orangefs_dev_major;
static const struct file_operations orangefs_devreq_file_operations = …;
int orangefs_dev_init(void)
{ … }
void orangefs_dev_cleanup(void)
{ … }