Commit 51008f9f authored by Tom Zanussi's avatar Tom Zanussi Committed by Linus Torvalds

[PATCH] relayfs: use generic_ip for private data

Use inode->u.generic_ip instead of relayfs_inode_info to store pointer to user
data.  Clients using relayfs_file_create() to create their own files would
probably more expect their data to be stored in generic_ip; we also intend in
the next set of patches to get rid of relayfs-specific stuff in the file
operations, so we might as well do it here.
Signed-off-by: default avatarTom Zanussi <zanussi@us.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 74317337
...@@ -54,7 +54,8 @@ static struct inode *relayfs_get_inode(struct super_block *sb, ...@@ -54,7 +54,8 @@ static struct inode *relayfs_get_inode(struct super_block *sb,
switch (mode & S_IFMT) { switch (mode & S_IFMT) {
case S_IFREG: case S_IFREG:
inode->i_fop = fops; inode->i_fop = fops;
RELAYFS_I(inode)->data = data; if (data)
inode->u.generic_ip = data;
break; break;
case S_IFDIR: case S_IFDIR:
inode->i_op = &simple_dir_inode_operations; inode->i_op = &simple_dir_inode_operations;
...@@ -255,8 +256,9 @@ int relayfs_remove_dir(struct dentry *dentry) ...@@ -255,8 +256,9 @@ int relayfs_remove_dir(struct dentry *dentry)
*/ */
static int relayfs_open(struct inode *inode, struct file *filp) static int relayfs_open(struct inode *inode, struct file *filp)
{ {
struct rchan_buf *buf = RELAYFS_I(inode)->data; struct rchan_buf *buf = inode->u.generic_ip;
kref_get(&buf->kref); kref_get(&buf->kref);
filp->private_data = buf;
return 0; return 0;
} }
...@@ -270,8 +272,8 @@ static int relayfs_open(struct inode *inode, struct file *filp) ...@@ -270,8 +272,8 @@ static int relayfs_open(struct inode *inode, struct file *filp)
*/ */
static int relayfs_mmap(struct file *filp, struct vm_area_struct *vma) static int relayfs_mmap(struct file *filp, struct vm_area_struct *vma)
{ {
struct inode *inode = filp->f_dentry->d_inode; struct rchan_buf *buf = filp->private_data;
return relay_mmap_buf(RELAYFS_I(inode)->data, vma); return relay_mmap_buf(buf, vma);
} }
/** /**
...@@ -284,8 +286,7 @@ static int relayfs_mmap(struct file *filp, struct vm_area_struct *vma) ...@@ -284,8 +286,7 @@ static int relayfs_mmap(struct file *filp, struct vm_area_struct *vma)
static unsigned int relayfs_poll(struct file *filp, poll_table *wait) static unsigned int relayfs_poll(struct file *filp, poll_table *wait)
{ {
unsigned int mask = 0; unsigned int mask = 0;
struct inode *inode = filp->f_dentry->d_inode; struct rchan_buf *buf = filp->private_data;
struct rchan_buf *buf = RELAYFS_I(inode)->data;
if (buf->finalized) if (buf->finalized)
return POLLERR; return POLLERR;
...@@ -309,7 +310,7 @@ static unsigned int relayfs_poll(struct file *filp, poll_table *wait) ...@@ -309,7 +310,7 @@ static unsigned int relayfs_poll(struct file *filp, poll_table *wait)
*/ */
static int relayfs_release(struct inode *inode, struct file *filp) static int relayfs_release(struct inode *inode, struct file *filp)
{ {
struct rchan_buf *buf = RELAYFS_I(inode)->data; struct rchan_buf *buf = filp->private_data;
kref_put(&buf->kref, relay_remove_buf); kref_put(&buf->kref, relay_remove_buf);
return 0; return 0;
...@@ -470,8 +471,8 @@ static ssize_t relayfs_read(struct file *filp, ...@@ -470,8 +471,8 @@ static ssize_t relayfs_read(struct file *filp,
size_t count, size_t count,
loff_t *ppos) loff_t *ppos)
{ {
struct rchan_buf *buf = filp->private_data;
struct inode *inode = filp->f_dentry->d_inode; struct inode *inode = filp->f_dentry->d_inode;
struct rchan_buf *buf = RELAYFS_I(inode)->data;
size_t read_start, avail; size_t read_start, avail;
ssize_t ret = 0; ssize_t ret = 0;
void *from; void *from;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment