diff options
| author | Andrew Morton <akpm@osdl.org> | 2003-07-04 19:36:09 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-07-04 19:36:09 -0700 |
| commit | 33c664854c9c467f4c30fe038c2afa12cc126311 (patch) | |
| tree | f23e499a4c06bc96fdb9296aa20de03bd876e4ee /include/linux/blkdev.h | |
| parent | 3abbd8ff39f3da75117a35ac50020818ff3ef7a6 (diff) | |
[PATCH] Create `kblockd' workqueue
keventd is inappropriate for running block request queues because keventd
itself can get blocked on disk I/O. Via call_usermodehelper()'s vfork and,
presumably, GFP_KERNEL allocations.
So create a new gang of kernel threads whose mandate is for running low-level
disk operations. It must ever block on disk IO, so any memory allocations
should be GFP_NOIO.
We mainly use it for running unplug operations from interrupt context.
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 621a5b042a9c..e97790517973 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -561,6 +561,10 @@ static inline void put_dev_sector(Sector p) page_cache_release(p.v); } +struct work_struct; +int kblockd_schedule_work(struct work_struct *work); +void kblockd_flush(void); + #ifdef CONFIG_LBD # include <asm/div64.h> # define sector_div(a, b) do_div(a, b) |
