summaryrefslogtreecommitdiff
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-07-04 19:36:09 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-07-04 19:36:09 -0700
commit33c664854c9c467f4c30fe038c2afa12cc126311 (patch)
treef23e499a4c06bc96fdb9296aa20de03bd876e4ee /include/linux/blkdev.h
parent3abbd8ff39f3da75117a35ac50020818ff3ef7a6 (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.h4
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)