summaryrefslogtreecommitdiff
path: root/fs/fuse/fuse_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2015-07-01 17:26:09 +0300
committerMiklos Szeredi <mszeredi@suse.cz>2015-07-01 17:26:09 +0300
commitc3696046beb3a4479715b48f67f6a8a3aef4b3bb (patch)
tree74fff1d57b1b7e0270dbf7ca89b964bf69402e51 /fs/fuse/fuse_i.h
parentcc080e9e9be16ccf26135d366d7d2b65209f1d56 (diff)
downloadlinux-c3696046beb3a4479715b48f67f6a8a3aef4b3bb.tar.xz
fuse: separate pqueue for clones
Make each fuse device clone refer to a separate processing queue. The only constraint on userspace code is that the request answer must be written to the same device clone as it was read off. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r--fs/fuse/fuse_i.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 42d59cbd47e7..405113101db8 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -424,6 +424,9 @@ struct fuse_dev {
/** Fuse connection for this device */
struct fuse_conn *fc;
+ /** Processing queue */
+ struct fuse_pqueue pq;
+
/** list entry on fc->devices */
struct list_head entry;
};
@@ -442,6 +445,9 @@ struct fuse_conn {
/** Refcount */
atomic_t count;
+ /** Number of fuse_dev's */
+ atomic_t dev_count;
+
struct rcu_head rcu;
/** The user id for this mount */
@@ -462,9 +468,6 @@ struct fuse_conn {
/** Input queue */
struct fuse_iqueue iq;
- /** Processing queue */
- struct fuse_pqueue pq;
-
/** The next unique kernel file handle */
u64 khctr;