Merge branch 'akpm' (incoming from Andrew)
[pandora-kernel.git] / fs / fuse / cuse.c
index 06b5e08..aef34b1 100644 (file)
@@ -93,8 +93,9 @@ static ssize_t cuse_read(struct file *file, char __user *buf, size_t count,
 {
        loff_t pos = 0;
        struct iovec iov = { .iov_base = buf, .iov_len = count };
+       struct fuse_io_priv io = { .async = 0, .file = file };
 
-       return fuse_direct_io(file, &iov, 1, count, &pos, 0);
+       return fuse_direct_io(&io, &iov, 1, count, &pos, 0);
 }
 
 static ssize_t cuse_write(struct file *file, const char __user *buf,
@@ -102,12 +103,13 @@ static ssize_t cuse_write(struct file *file, const char __user *buf,
 {
        loff_t pos = 0;
        struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = count };
+       struct fuse_io_priv io = { .async = 0, .file = file };
 
        /*
         * No locking or generic_write_checks(), the server is
         * responsible for locking and sanity checks.
         */
-       return fuse_direct_io(file, &iov, 1, count, &pos, 1);
+       return fuse_direct_io(&io, &iov, 1, count, &pos, 1);
 }
 
 static int cuse_open(struct inode *inode, struct file *file)
@@ -423,7 +425,7 @@ static int cuse_send_init(struct cuse_conn *cc)
 
        BUILD_BUG_ON(CUSE_INIT_INFO_MAX > PAGE_SIZE);
 
-       req = fuse_get_req(fc, 1);
+       req = fuse_get_req_for_background(fc, 1);
        if (IS_ERR(req)) {
                rc = PTR_ERR(req);
                goto err;
@@ -505,7 +507,7 @@ static int cuse_channel_open(struct inode *inode, struct file *file)
        cc->fc.release = cuse_fc_release;
 
        cc->fc.connected = 1;
-       cc->fc.blocked = 0;
+       cc->fc.initialized = 1;
        rc = cuse_send_init(cc);
        if (rc) {
                fuse_conn_put(&cc->fc);