aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse/fuse_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r--fs/fuse/fuse_i.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 7ed1d3c53b8a..46cf933aa3bf 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -94,6 +94,11 @@ struct fuse_out {
94 /** Header returned from userspace */ 94 /** Header returned from userspace */
95 struct fuse_out_header h; 95 struct fuse_out_header h;
96 96
97 /*
98 * The following bitfields are not changed during the request
99 * processing
100 */
101
97 /** Last argument is variable length (can be shorter than 102 /** Last argument is variable length (can be shorter than
98 arg->size) */ 103 arg->size) */
99 unsigned argvar:1; 104 unsigned argvar:1;
@@ -136,6 +141,12 @@ struct fuse_req {
136 /** refcount */ 141 /** refcount */
137 atomic_t count; 142 atomic_t count;
138 143
144 /*
145 * The following bitfields are either set once before the
146 * request is queued or setting/clearing them is protected by
147 * fuse_lock
148 */
149
139 /** True if the request has reply */ 150 /** True if the request has reply */
140 unsigned isreply:1; 151 unsigned isreply:1;
141 152
@@ -250,15 +261,22 @@ struct fuse_conn {
250 u64 reqctr; 261 u64 reqctr;
251 262
252 /** Mount is active */ 263 /** Mount is active */
253 unsigned mounted : 1; 264 unsigned mounted;
254 265
255 /** Connection established, cleared on umount, connection 266 /** Connection established, cleared on umount, connection
256 abort and device release */ 267 abort and device release */
257 unsigned connected : 1; 268 unsigned connected;
258 269
259 /** Connection failed (version mismatch) */ 270 /** Connection failed (version mismatch). Cannot race with
271 setting other bitfields since it is only set once in INIT
272 reply, before any other request, and never cleared */
260 unsigned conn_error : 1; 273 unsigned conn_error : 1;
261 274
275 /*
276 * The following bitfields are only for optimization purposes
277 * and hence races in setting them will not cause malfunction
278 */
279
262 /** Is fsync not implemented by fs? */ 280 /** Is fsync not implemented by fs? */
263 unsigned no_fsync : 1; 281 unsigned no_fsync : 1;
264 282