mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-29 01:51:39 +00:00
btrfs: Add high priority workqueue support for btrfs_workqueue_struct
Add high priority function to btrfs_workqueue. This is implemented by embedding a btrfs_workqueue into a btrfs_workqueue and use some helper functions to differ the normal priority wq and high priority wq. So the high priority wq is completely independent from the normal workqueue. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Tested-by: David Sterba <dsterba@suse.cz> Signed-off-by: Josef Bacik <jbacik@fb.com>
This commit is contained in:
parent
08a9ff3264
commit
1ca08976ae
2 changed files with 84 additions and 14 deletions
|
@ -121,6 +121,8 @@ void btrfs_requeue_work(struct btrfs_work *work);
|
|||
void btrfs_set_work_high_prio(struct btrfs_work *work);
|
||||
|
||||
struct btrfs_workqueue_struct;
|
||||
/* Internal use only */
|
||||
struct __btrfs_workqueue_struct;
|
||||
|
||||
struct btrfs_work_struct {
|
||||
void (*func)(struct btrfs_work_struct *arg);
|
||||
|
@ -130,7 +132,7 @@ struct btrfs_work_struct {
|
|||
/* Don't touch things below */
|
||||
struct work_struct normal_work;
|
||||
struct list_head ordered_list;
|
||||
struct btrfs_workqueue_struct *wq;
|
||||
struct __btrfs_workqueue_struct *wq;
|
||||
unsigned long flags;
|
||||
};
|
||||
|
||||
|
@ -145,4 +147,5 @@ void btrfs_queue_work(struct btrfs_workqueue_struct *wq,
|
|||
struct btrfs_work_struct *work);
|
||||
void btrfs_destroy_workqueue(struct btrfs_workqueue_struct *wq);
|
||||
void btrfs_workqueue_set_max(struct btrfs_workqueue_struct *wq, int max);
|
||||
void btrfs_set_work_high_priority(struct btrfs_work_struct *work);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue