summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2009-04-28 16:56:41 +0200
committerMiklos Szeredi <mszeredi@suse.cz>2009-04-28 16:56:41 +0200
commit797759aaf31351a1ab1b9130c4f180ce496f46c5 (patch)
tree2bea6512575202090db75c5e8ab8d27e569df4a2
parentd36f248710c05714f37d921258b630bd1456b99f (diff)
downloadlinux-stable-797759aaf31351a1ab1b9130c4f180ce496f46c5.tar.gz
linux-stable-797759aaf31351a1ab1b9130c4f180ce496f46c5.tar.bz2
linux-stable-797759aaf31351a1ab1b9130c4f180ce496f46c5.zip
fuse: don't use inode in fuse_file_poll
Use ff->fc and ff->nodeid instead of file->f_dentry->d_inode in the fuse_file_poll() implementation. This prepares this function for use by CUSE, where the inode is not owned by a fuse filesystem. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
-rw-r--r--fs/fuse/file.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 9f0ade0b4ce8..c5de60e873cb 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1894,9 +1894,8 @@ static void fuse_register_polled_file(struct fuse_conn *fc,
static unsigned fuse_file_poll(struct file *file, poll_table *wait)
{
- struct inode *inode = file->f_dentry->d_inode;
struct fuse_file *ff = file->private_data;
- struct fuse_conn *fc = get_fuse_conn(inode);
+ struct fuse_conn *fc = ff->fc;
struct fuse_poll_in inarg = { .fh = ff->fh, .kh = ff->kh };
struct fuse_poll_out outarg;
struct fuse_req *req;
@@ -1921,7 +1920,7 @@ static unsigned fuse_file_poll(struct file *file, poll_table *wait)
return PTR_ERR(req);
req->in.h.opcode = FUSE_POLL;
- req->in.h.nodeid = get_node_id(inode);
+ req->in.h.nodeid = ff->nodeid;
req->in.numargs = 1;
req->in.args[0].size = sizeof(inarg);
req->in.args[0].value = &inarg;