aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/relayfs_fs.h
diff options
context:
space:
mode:
authorTom Zanussi <zanussi@us.ibm.com>2006-01-08 01:02:24 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-08 20:13:49 -0800
commit907f2c77d1653ce235e8e1fd6ce5c46005814e78 (patch)
treedddb1fb14c4be54b066585235c97a36460e8faff /include/linux/relayfs_fs.h
parent[PATCH] relayfs: decouple buffer creation from inode creation (diff)
downloadlinux-dev-907f2c77d1653ce235e8e1fd6ce5c46005814e78.tar.xz
linux-dev-907f2c77d1653ce235e8e1fd6ce5c46005814e78.zip
[PATCH] relayfs: export relayfs_create_file() with fileops param
This patch adds a mandatory fileops param to relayfs_create_file() and exports that function so that clients can use it to create files defined by their own set of file operations, in relayfs. The purpose is to allow relayfs applications to create their own set of 'control' files alongside their relay files in relayfs rather than having to create them in /proc or debugfs for instance. relayfs_create_file() is also used by relay_open_buf() to create the relay files for a channel. In this case, a pointer to relayfs_file_operations is passed in, along with a pointer to the buffer associated with the file. Signed-off-by: Tom Zanussi <zanussi@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/relayfs_fs.h')
-rw-r--r--include/linux/relayfs_fs.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/relayfs_fs.h b/include/linux/relayfs_fs.h
index fb7e80737325..a122df2d9880 100644
--- a/include/linux/relayfs_fs.h
+++ b/include/linux/relayfs_fs.h
@@ -70,7 +70,7 @@ struct rchan
struct relayfs_inode_info
{
struct inode vfs_inode;
- struct rchan_buf *buf;
+ void *data;
};
static inline struct relayfs_inode_info *RELAYFS_I(struct inode *inode)
@@ -148,6 +148,11 @@ extern size_t relay_switch_subbuf(struct rchan_buf *buf,
extern struct dentry *relayfs_create_dir(const char *name,
struct dentry *parent);
extern int relayfs_remove_dir(struct dentry *dentry);
+extern struct dentry *relayfs_create_file(const char *name,
+ struct dentry *parent,
+ int mode,
+ struct file_operations *fops,
+ void *data);
/**
* relay_write - write data into the channel