diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-06-12 14:46:17 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:03 -0400 |
commit | 1cc127b5d1b71453091859301de4a7dd6ee96fa8 (patch) | |
tree | cb1280305a04eb5e6838f91781e668e3bdeed208 /fs/btrfs/ctree.h | |
parent | df5b5520b21d8a2554ede65c09b288833c77144d (diff) |
Btrfs: Add a thread pool just for submit_bio
If a bio submission is after a lock holder waiting for the bio
on the work queue, it is possible to deadlock. Move the bios
into their own pool.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 181c81d29897..dcea9d706d9b 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -529,9 +529,13 @@ struct btrfs_fs_info { | |||
529 | * can run with FS locks held, and the writers may be waiting for | 529 | * can run with FS locks held, and the writers may be waiting for |
530 | * those locks. We don't want ordering in the pending list to cause | 530 | * those locks. We don't want ordering in the pending list to cause |
531 | * deadlocks, and so the two are serviced separately. | 531 | * deadlocks, and so the two are serviced separately. |
532 | * | ||
533 | * A third pool does submit_bio to avoid deadlocking with the other | ||
534 | * two | ||
532 | */ | 535 | */ |
533 | struct btrfs_workers workers; | 536 | struct btrfs_workers workers; |
534 | struct btrfs_workers endio_workers; | 537 | struct btrfs_workers endio_workers; |
538 | struct btrfs_workers submit_workers; | ||
535 | int thread_pool_size; | 539 | int thread_pool_size; |
536 | 540 | ||
537 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | 541 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) |