fuse: add fuse_iqueue_ops callbacks
[sfrench/cifs-2.6.git] / fs / fuse / inode.c
index 30d92e633eceade5d688bd345c118be1e2e1a6c1..734fdd597c3edc1d73a02342ee8640dccfba0be7 100644 (file)
@@ -568,7 +568,9 @@ static int fuse_show_options(struct seq_file *m, struct dentry *root)
        return 0;
 }
 
-static void fuse_iqueue_init(struct fuse_iqueue *fiq)
+static void fuse_iqueue_init(struct fuse_iqueue *fiq,
+                            const struct fuse_iqueue_ops *ops,
+                            void *priv)
 {
        memset(fiq, 0, sizeof(struct fuse_iqueue));
        spin_lock_init(&fiq->lock);
@@ -577,6 +579,8 @@ static void fuse_iqueue_init(struct fuse_iqueue *fiq)
        INIT_LIST_HEAD(&fiq->interrupts);
        fiq->forget_list_tail = &fiq->forget_list_head;
        fiq->connected = 1;
+       fiq->ops = ops;
+       fiq->priv = priv;
 }
 
 static void fuse_pqueue_init(struct fuse_pqueue *fpq)
@@ -590,7 +594,8 @@ static void fuse_pqueue_init(struct fuse_pqueue *fpq)
        fpq->connected = 1;
 }
 
-void fuse_conn_init(struct fuse_conn *fc, struct user_namespace *user_ns)
+void fuse_conn_init(struct fuse_conn *fc, struct user_namespace *user_ns,
+                   const struct fuse_iqueue_ops *fiq_ops, void *fiq_priv)
 {
        memset(fc, 0, sizeof(*fc));
        spin_lock_init(&fc->lock);
@@ -599,7 +604,7 @@ void fuse_conn_init(struct fuse_conn *fc, struct user_namespace *user_ns)
        refcount_set(&fc->count, 1);
        atomic_set(&fc->dev_count, 1);
        init_waitqueue_head(&fc->blocked_waitq);
-       fuse_iqueue_init(&fc->iq);
+       fuse_iqueue_init(&fc->iq, fiq_ops, fiq_priv);
        INIT_LIST_HEAD(&fc->bg_queue);
        INIT_LIST_HEAD(&fc->entry);
        INIT_LIST_HEAD(&fc->devices);
@@ -1209,7 +1214,7 @@ static int fuse_fill_super(struct super_block *sb, struct fs_context *fsc)
        if (!fc)
                goto err_fput;
 
-       fuse_conn_init(fc, sb->s_user_ns);
+       fuse_conn_init(fc, sb->s_user_ns, &fuse_dev_fiq_ops, NULL);
        fc->release = fuse_free_conn;
        sb->s_fs_info = fc;