aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fuse/file.c')
-rw-r--r--fs/fuse/file.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index c5de60e873cb..fce6ce694fde 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -12,6 +12,7 @@
12#include <linux/slab.h> 12#include <linux/slab.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/sched.h> 14#include <linux/sched.h>
15#include <linux/module.h>
15 16
16static const struct file_operations fuse_direct_io_file_operations; 17static const struct file_operations fuse_direct_io_file_operations;
17 18
@@ -100,8 +101,8 @@ static void fuse_file_put(struct fuse_file *ff)
100 } 101 }
101} 102}
102 103
103static int fuse_do_open(struct fuse_conn *fc, u64 nodeid, struct file *file, 104int fuse_do_open(struct fuse_conn *fc, u64 nodeid, struct file *file,
104 bool isdir) 105 bool isdir)
105{ 106{
106 struct fuse_open_out outarg; 107 struct fuse_open_out outarg;
107 struct fuse_file *ff; 108 struct fuse_file *ff;
@@ -128,6 +129,7 @@ static int fuse_do_open(struct fuse_conn *fc, u64 nodeid, struct file *file,
128 129
129 return 0; 130 return 0;
130} 131}
132EXPORT_SYMBOL_GPL(fuse_do_open);
131 133
132void fuse_finish_open(struct inode *inode, struct file *file) 134void fuse_finish_open(struct inode *inode, struct file *file)
133{ 135{
@@ -232,6 +234,7 @@ void fuse_sync_release(struct fuse_file *ff, int flags)
232 fuse_put_request(ff->fc, ff->reserved_req); 234 fuse_put_request(ff->fc, ff->reserved_req);
233 kfree(ff); 235 kfree(ff);
234} 236}
237EXPORT_SYMBOL_GPL(fuse_sync_release);
235 238
236/* 239/*
237 * Scramble the ID space with XTEA, so that the value of the files_struct 240 * Scramble the ID space with XTEA, so that the value of the files_struct
@@ -1009,8 +1012,8 @@ static int fuse_get_user_pages(struct fuse_req *req, const char __user *buf,
1009 return 0; 1012 return 0;
1010} 1013}
1011 1014
1012static ssize_t fuse_direct_io(struct file *file, const char __user *buf, 1015ssize_t fuse_direct_io(struct file *file, const char __user *buf,
1013 size_t count, loff_t *ppos, int write) 1016 size_t count, loff_t *ppos, int write)
1014{ 1017{
1015 struct fuse_file *ff = file->private_data; 1018 struct fuse_file *ff = file->private_data;
1016 struct fuse_conn *fc = ff->fc; 1019 struct fuse_conn *fc = ff->fc;
@@ -1066,6 +1069,7 @@ static ssize_t fuse_direct_io(struct file *file, const char __user *buf,
1066 1069
1067 return res; 1070 return res;
1068} 1071}
1072EXPORT_SYMBOL_GPL(fuse_direct_io);
1069 1073
1070static ssize_t fuse_direct_read(struct file *file, char __user *buf, 1074static ssize_t fuse_direct_read(struct file *file, char __user *buf,
1071 size_t count, loff_t *ppos) 1075 size_t count, loff_t *ppos)
@@ -1647,8 +1651,8 @@ static int fuse_ioctl_copy_user(struct page **pages, struct iovec *iov,
1647 * limits ioctl data transfers to well-formed ioctls and is the forced 1651 * limits ioctl data transfers to well-formed ioctls and is the forced
1648 * behavior for all FUSE servers. 1652 * behavior for all FUSE servers.
1649 */ 1653 */
1650static long fuse_do_ioctl(struct file *file, unsigned int cmd, 1654long fuse_do_ioctl(struct file *file, unsigned int cmd, unsigned long arg,
1651 unsigned long arg, unsigned int flags) 1655 unsigned int flags)
1652{ 1656{
1653 struct fuse_file *ff = file->private_data; 1657 struct fuse_file *ff = file->private_data;
1654 struct fuse_conn *fc = ff->fc; 1658 struct fuse_conn *fc = ff->fc;
@@ -1813,6 +1817,7 @@ static long fuse_do_ioctl(struct file *file, unsigned int cmd,
1813 1817
1814 return err ? err : outarg.result; 1818 return err ? err : outarg.result;
1815} 1819}
1820EXPORT_SYMBOL_GPL(fuse_do_ioctl);
1816 1821
1817static long fuse_file_ioctl_common(struct file *file, unsigned int cmd, 1822static long fuse_file_ioctl_common(struct file *file, unsigned int cmd,
1818 unsigned long arg, unsigned int flags) 1823 unsigned long arg, unsigned int flags)
@@ -1892,7 +1897,7 @@ static void fuse_register_polled_file(struct fuse_conn *fc,
1892 spin_unlock(&fc->lock); 1897 spin_unlock(&fc->lock);
1893} 1898}
1894 1899
1895static unsigned fuse_file_poll(struct file *file, poll_table *wait) 1900unsigned fuse_file_poll(struct file *file, poll_table *wait)
1896{ 1901{
1897 struct fuse_file *ff = file->private_data; 1902 struct fuse_file *ff = file->private_data;
1898 struct fuse_conn *fc = ff->fc; 1903 struct fuse_conn *fc = ff->fc;
@@ -1939,6 +1944,7 @@ static unsigned fuse_file_poll(struct file *file, poll_table *wait)
1939 } 1944 }
1940 return POLLERR; 1945 return POLLERR;
1941} 1946}
1947EXPORT_SYMBOL_GPL(fuse_file_poll);
1942 1948
1943/* 1949/*
1944 * This is called from fuse_handle_notify() on FUSE_NOTIFY_POLL and 1950 * This is called from fuse_handle_notify() on FUSE_NOTIFY_POLL and