diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-14 12:11:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-14 12:11:34 -0400 |
commit | 9a7e9f1c60bada782014b2f422f6c68c4d5388f3 (patch) | |
tree | 7e874364f448e050edd6058c50e1e70346b99696 /fs/fuse/fuse_i.h | |
parent | 9ca686626c012935b3b8219815e9027facc6fe6e (diff) | |
parent | 56cf34ff0795692327234963dcdcc2cdeec2bb3d (diff) |
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/mszeredi/fuse
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/mszeredi/fuse:
[fuse] Direct I/O should not use fuse_reset_request
[fuse] Don't init request twice
[fuse] Fix accounting the number of waiting requests
[fuse] fix deadlock between fuse_put_super() and request_end()
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 19c7185a7546..59661c481d9d 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -159,6 +159,9 @@ struct fuse_req { | |||
159 | /** Data is being copied to/from the request */ | 159 | /** Data is being copied to/from the request */ |
160 | unsigned locked:1; | 160 | unsigned locked:1; |
161 | 161 | ||
162 | /** Request is counted as "waiting" */ | ||
163 | unsigned waiting:1; | ||
164 | |||
162 | /** State of the request */ | 165 | /** State of the request */ |
163 | enum fuse_req_state state; | 166 | enum fuse_req_state state; |
164 | 167 | ||
@@ -255,15 +258,9 @@ struct fuse_conn { | |||
255 | /** waitq for blocked connection */ | 258 | /** waitq for blocked connection */ |
256 | wait_queue_head_t blocked_waitq; | 259 | wait_queue_head_t blocked_waitq; |
257 | 260 | ||
258 | /** RW semaphore for exclusion with fuse_put_super() */ | ||
259 | struct rw_semaphore sbput_sem; | ||
260 | |||
261 | /** The next unique request id */ | 261 | /** The next unique request id */ |
262 | u64 reqctr; | 262 | u64 reqctr; |
263 | 263 | ||
264 | /** Mount is active */ | ||
265 | unsigned mounted; | ||
266 | |||
267 | /** Connection established, cleared on umount, connection | 264 | /** Connection established, cleared on umount, connection |
268 | abort and device release */ | 265 | abort and device release */ |
269 | unsigned connected; | 266 | unsigned connected; |
@@ -474,11 +471,11 @@ void request_send_noreply(struct fuse_conn *fc, struct fuse_req *req); | |||
474 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); | 471 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); |
475 | 472 | ||
476 | /** | 473 | /** |
477 | * Release inodes and file associated with background request | 474 | * Remove request from the the background list |
478 | */ | 475 | */ |
479 | void fuse_release_background(struct fuse_conn *fc, struct fuse_req *req); | 476 | void fuse_remove_background(struct fuse_conn *fc, struct fuse_req *req); |
480 | 477 | ||
481 | /* Abort all requests */ | 478 | /** Abort all requests */ |
482 | void fuse_abort_conn(struct fuse_conn *fc); | 479 | void fuse_abort_conn(struct fuse_conn *fc); |
483 | 480 | ||
484 | /** | 481 | /** |