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 | ||
