diff options
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index fd65e75e1622..c862df58da92 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -131,6 +131,7 @@ enum fuse_req_state { | |||
131 | FUSE_REQ_PENDING, | 131 | FUSE_REQ_PENDING, |
132 | FUSE_REQ_READING, | 132 | FUSE_REQ_READING, |
133 | FUSE_REQ_SENT, | 133 | FUSE_REQ_SENT, |
134 | FUSE_REQ_WRITING, | ||
134 | FUSE_REQ_FINISHED | 135 | FUSE_REQ_FINISHED |
135 | }; | 136 | }; |
136 | 137 | ||
@@ -144,9 +145,15 @@ struct fuse_req { | |||
144 | fuse_conn */ | 145 | fuse_conn */ |
145 | struct list_head list; | 146 | struct list_head list; |
146 | 147 | ||
148 | /** Entry on the interrupts list */ | ||
149 | struct list_head intr_entry; | ||
150 | |||
147 | /** refcount */ | 151 | /** refcount */ |
148 | atomic_t count; | 152 | atomic_t count; |
149 | 153 | ||
154 | /** Unique ID for the interrupt request */ | ||
155 | u64 intr_unique; | ||
156 | |||
150 | /* | 157 | /* |
151 | * The following bitfields are either set once before the | 158 | * The following bitfields are either set once before the |
152 | * request is queued or setting/clearing them is protected by | 159 | * request is queued or setting/clearing them is protected by |
@@ -165,6 +172,9 @@ struct fuse_req { | |||
165 | /** Request is sent in the background */ | 172 | /** Request is sent in the background */ |
166 | unsigned background:1; | 173 | unsigned background:1; |
167 | 174 | ||
175 | /** The request has been interrupted */ | ||
176 | unsigned interrupted:1; | ||
177 | |||
168 | /** Data is being copied to/from the request */ | 178 | /** Data is being copied to/from the request */ |
169 | unsigned locked:1; | 179 | unsigned locked:1; |
170 | 180 | ||
@@ -262,6 +272,9 @@ struct fuse_conn { | |||
262 | /** Number of requests currently in the background */ | 272 | /** Number of requests currently in the background */ |
263 | unsigned num_background; | 273 | unsigned num_background; |
264 | 274 | ||
275 | /** Pending interrupts */ | ||
276 | struct list_head interrupts; | ||
277 | |||
265 | /** Flag indicating if connection is blocked. This will be | 278 | /** Flag indicating if connection is blocked. This will be |
266 | the case before the INIT reply is received, and if there | 279 | the case before the INIT reply is received, and if there |
267 | are too many outstading backgrounds requests */ | 280 | are too many outstading backgrounds requests */ |
@@ -320,6 +333,9 @@ struct fuse_conn { | |||
320 | /** Is create not implemented by fs? */ | 333 | /** Is create not implemented by fs? */ |
321 | unsigned no_create : 1; | 334 | unsigned no_create : 1; |
322 | 335 | ||
336 | /** Is interrupt not implemented by fs? */ | ||
337 | unsigned no_interrupt : 1; | ||
338 | |||
323 | /** The number of requests waiting for completion */ | 339 | /** The number of requests waiting for completion */ |
324 | atomic_t num_waiting; | 340 | atomic_t num_waiting; |
325 | 341 | ||