diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-09-22 08:18:48 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-09-22 08:18:48 -0700 |
| commit | e7144e6409c9722927261f18a055a9a494629e66 (patch) | |
| tree | 79f0154d48deba0ba79a05728ae04c9f5f2945e8 /include/linux | |
| parent | da29f6a8f2a9a3444fa0d6f3d521fa20ba8ebed3 (diff) | |
| parent | 407ee6c87e477434e3cb8be96885ed27b5539b6f (diff) | |
Merge master.kernel.org:/home/davem/BK/net-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/backing-dev.h | 14 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 1 | ||||
| -rw-r--r-- | include/linux/buffer_head.h | 1 | ||||
| -rw-r--r-- | include/linux/sched.h | 2 | ||||
| -rw-r--r-- | include/linux/writeback.h | 4 |
5 files changed, 21 insertions, 1 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 898f8e1814ef..94c93c9c5f66 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -8,11 +8,15 @@ #ifndef _LINUX_BACKING_DEV_H #define _LINUX_BACKING_DEV_H +#include <asm/atomic.h> + /* * Bits in backing_dev_info.state */ enum bdi_state { BDI_pdflush, /* A pdflush thread is working this device */ + BDI_write_congested, /* The write queue is getting full */ + BDI_read_congested, /* The read queue is getting full */ BDI_unused, /* Available bits start here */ }; @@ -28,4 +32,14 @@ int writeback_acquire(struct backing_dev_info *bdi); int writeback_in_progress(struct backing_dev_info *bdi); void writeback_release(struct backing_dev_info *bdi); +static inline int bdi_read_congested(struct backing_dev_info *bdi) +{ + return test_bit(BDI_read_congested, &bdi->state); +} + +static inline int bdi_write_congested(struct backing_dev_info *bdi) +{ + return test_bit(BDI_write_congested, &bdi->state); +} + #endif /* _LINUX_BACKING_DEV_H */ diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index fa0798452e77..255001f6f433 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -345,6 +345,7 @@ extern void blk_queue_end_tag(request_queue_t *, struct request *); extern int blk_queue_init_tags(request_queue_t *, int); extern void blk_queue_free_tags(request_queue_t *); extern void blk_queue_invalidate_tags(request_queue_t *); +extern void blk_congestion_wait(int rw, long timeout); #define MAX_PHYS_SEGMENTS 128 #define MAX_HW_SEGMENTS 128 diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index c3535486d525..dd8f1bfb150e 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -163,7 +163,6 @@ struct buffer_head * __getblk(struct block_device *, sector_t, int); void __brelse(struct buffer_head *); void __bforget(struct buffer_head *); struct buffer_head *__bread(struct block_device *, sector_t block, int size); -void wakeup_bdflush(void); struct buffer_head *alloc_buffer_head(void); void free_buffer_head(struct buffer_head * bh); void FASTCALL(unlock_buffer(struct buffer_head *bh)); diff --git a/include/linux/sched.h b/include/linux/sched.h index 18dbb67449a4..e985f7c8fd5d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -273,6 +273,7 @@ extern struct user_struct root_user; #define INIT_USER (&root_user) typedef struct prio_array prio_array_t; +struct backing_dev_info; struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ @@ -398,6 +399,7 @@ struct task_struct { /* journalling filesystem info */ void *journal_info; struct dentry *proc_dentry; + struct backing_dev_info *backing_dev_info; }; extern void __put_task_struct(struct task_struct *tsk); diff --git a/include/linux/writeback.h b/include/linux/writeback.h index c35b96eb6a90..b71468f8f072 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -43,6 +43,8 @@ struct writeback_control { older than this */ long nr_to_write; /* Write this many pages, and decrement this for each page written */ + int nonblocking; /* Don't get stuck on request queues */ + int encountered_congestion; /* An output: a queue is full */ }; void writeback_inodes(struct writeback_control *wbc); @@ -61,6 +63,8 @@ static inline void wait_on_inode(struct inode *inode) /* * mm/page-writeback.c */ +int wakeup_bdflush(long nr_pages); + /* These 5 are exported to sysctl. */ extern int dirty_background_ratio; extern int dirty_async_ratio; |
